JPA验证问题:实体“X”没有Id或EmbeddedId

时间:2009-07-01 15:56:15

标签: eclipse jpa

其中,我无法弄清楚为什么Eclipse Galileo的JPA验证器会这么说,因为我的班级'X'显然在主键“​​uniqueId”上有@Id注释。如果我注释掉@Basic注释行,那么错误就会消失,但这并没有多大意义。无论如何,从内存中附加下面的片段:

@Entity
class X {
...
@Id
@Basic(optional=false)
@Column(name="someUniqueId", unique=false)
String uniqueId;
...
}

这是一个错误,还是有一个我不了解注释使用的JPA标准?

4 个答案:

答案 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=EAGERoptional=false)。