我们如何告诉Hibernate将标识符属性设置为可选

时间:2014-08-24 18:58:46

标签: java hibernate

Hibernate documentation,说:

  

Hibernate使标识符属性可选。有一系列的   你应该使用它们的原因。我们建议使用标识符   ' synthetic',即生成时没有商业意义。

正如它所说的标识符是可选的,我试图为任何字段创建一个没有@Id注释的实体。然后我得到一个例外:

Initial SessionFactory creation failed.org.hibernate.AnnotationException: 
No identifier specified for entity: org.hibernate.tutorials.User

那意味着什么Hibernate makes identifier properties optional.有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

标识符的可选性与您不必自己创建列的内容这一事实有关,因为Hibernate可以自动生成它。

相反,在表中没有标识列并不是很聪明,因此Hibernate要求您在Entity类中定义相应的字段以保存某种标识值。这并不一定是自动增量的东西,但当然,每个实体都需要在其中一个字段上使用@Id注释,最好是Stringint