【问题标题】:Incompatible argument to function in JPA with JAXB types在 JPA 中与 JAXB 类型函数不兼容的参数
【发布时间】:2012-07-11 18:51:05
【问题描述】:

这里解释:How to map Duration type with JPA

我有相同的代码,而 jaxb 正在生成 getter 和 setter 包装器:

@Basic
@Column(name = "VALUEITEM", length = 127)
public String getValueItem() {
    return XmlAdapterUtils.unmarshall(DurationAsString.class, this.getValue());
}

public void setValueItem(String target) {
    setValue(XmlAdapterUtils.marshall(DurationAsString.class, target));
} 

但是当我试图持久化一个对象时,我得到了:

method: pcgetValueItem signature: ()Ljava/lang/String;) Incompatible argument to function

在每个包装字段上。

有什么线索吗?

谢谢!

【问题讨论】:

  • 你有没有想过这个问题?我在 OSGi 容器中遇到了与 Hyperjaxb 生成的类类似的问题。

标签: java jpa jaxb


【解决方案1】:

带有此类消息的 java.lang.VerifyError 的原因(几乎总是)是您编译的类版本与您正在运行的版本不同。这意味着周围可能有两个版本的 getValueItem - 一个具有匹配的签名,另一个没有。

大多数情况下,这个问题当然是在外部库中遇到的——例如,针对较新的库进行编译并使用较旧的库运行。

只需清理垃圾,重建所有内容,也许您会发现编译时错误,或者在最好的情况下问题会立即解决。

【讨论】:

  • 会不会是我为 JPA 所做的增强导致了这种情况?我做了清洁,但问题仍然存在。
猜你喜欢
  • 2018-09-07
  • 1970-01-01
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 2021-03-08
  • 2012-11-06
相关资源
最近更新 更多