如何处理不需要@id注释的实体

时间:2011-12-09 08:39:28

标签: java jpa persistence

我在模式中有一些类,其中一些是没有任何ID的表,因为它们被用作参考/值表,如国家,性别,公民身份等等,但当我尝试运行时应用程序,应用程序服务器glassfish将不会部署它,因为它要求我的实体上具有@Id属性的字段,它通常不具有,因为它主要用作值表。

除了创建一个id字段外,我还能做什么?

2 个答案:

答案 0 :(得分:1)

JPA没有没有身份的实体; JDO是唯一支持该概念的Java持久性规范。

使用JPA,一种方法是添加一个任意id(如果其中一列是唯一的那么就好了,否则添加一个新的(虚拟)列来存储“id”

答案 1 :(得分:0)

@Id用于标记主键。通常它是代理主键(即标识行的任意数字),但它也可以是自然主键(即用于从外部引用该表行的任何列)。

在您的情况下,这些参考表肯定有主键,您需要使用@Id注释相应的字段。