其中,我无法弄清楚为什么Eclipse Galileo的JPA验证器会这么说,因为我的班级'X'显然在主键“uniqueId”上有@Id注释。如果我注释掉@Basic注释行,那么错误就会消失,但这并没有多大意义。无论如何,从内存中附加下面的片段:
@Entity
class X {
...
@Id
@Basic(optional=false)
@Column(name="someUniqueId", unique=false)
String uniqueId;
...
}
这是一个错误,还是有一个我不了解注释使用的JPA标准?
答案 0 :(得分:1)
您在这里有similar case,可能会提出案件或类型问题。
但是作为mentioned here,我宁可打赌bug 217192(可以与“非bug" 208249”联系起来
您还可以指定您正在使用的eclipse和Dali JPA工具的版本。
答案 1 :(得分:0)
@EmbeddedId
String uniqueId;
答案 2 :(得分:0)
您使用“unique = false”注释了“uniqueId”。 这可能是根,因为ID必须是唯一的。
答案 3 :(得分:0)
您不需要@Basic
注释,因为@Id
已经限制了属性的类型(由规范定义),@Basic
可以添加的唯一信息是fetch
的设置}和optional
两者对主键没有意义(即主键必须有fetch=EAGER
和optional=false
)。