Hibernate使标识符属性可选。有一系列的 你应该使用它们的原因。我们建议使用标识符 ' synthetic',即生成时没有商业意义。
正如它所说的标识符是可选的,我试图为任何字段创建一个没有@Id
注释的实体。然后我得到一个例外:
Initial SessionFactory creation failed.org.hibernate.AnnotationException:
No identifier specified for entity: org.hibernate.tutorials.User
那意味着什么Hibernate makes identifier properties optional.
有人可以解释一下吗?
答案 0 :(得分:1)
标识符的可选性与您不必自己创建列的内容这一事实有关,因为Hibernate可以自动生成它。
相反,在表中没有标识列并不是很聪明,因此Hibernate要求您在Entity类中定义相应的字段以保存某种标识值。这并不一定是自动增量的东西,但当然,每个实体都需要在其中一个字段上使用@Id
注释,最好是String
或int