我在一个字段上有一个带有 @EmbeddedId
的实体,我覆盖了一个字段的访问类型,使其成为 Property
访问。但这被 EclipseLink
忽略,在 Hibernate
中它没问题。由于这个原因,Netbeans 也向我显示了错误:
类必须使用一致的访问类型(字段或属性)。
没有为此实体层次结构定义 ID。
@EmbeddedId
private OneId id;
@Transient
private String cosmin;
@Access(AccessType.PROPERTY) // ??
public String getCosmin() {
return cosmin;
}
public void setCosmin(String cosmin) {
this.cosmin = cosmin;
}
最佳答案
问题是实体错过了以下类级别的注释:
@Access(AccessType.FIELD)
只需从@Entity 添加下一个即可。当字段和方法都被注释时,您不知道实际使用的是哪种访问类型。在您的情况下,它似乎是方法访问,而 @EmbeddedId 被简单地忽略了。
在 JPA 2.0 规范中,这是用以下词语说明的:
.
关于hibernate - @Access 被 EclipseLink 忽略,在 Hibernate 中工作正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10682528/