如果我想在注释中使用hibernate,我是否必须使用javax.persistence。*?

时间:2011-11-29 06:23:04

标签: hibernate jpa annotations

我知道hibernate是JPA的一个实现,也有自己的特性。我正在尝试使用带有注释的hibernate,但我发现我必须在包“javax.persistence。*”下使用一些注释,例如:Column,OneToMany,ManyToOne等等。

我不想使用JPA,但我无法在包“org.hibernate.annotations”下找到像OneToMany这样的注释。那么,jpa annatations是hibernate的一部分吗?如果我想在jpa中使用hibernate,我必须使用一些“javax.persistence。*”注释?

1 个答案:

答案 0 :(得分:5)

  

如果我想在jpa中使用hibernate,我必须使用一些   “javax.persistence。*”注释?

是的,你是对的

JPA规范。在javax.persistence包中定义JPA注释。 Hibernate不仅实现了JPA规范,还扩展了它以添加更多功能。因此,hibernate创建自己的注释,只使用Hibernate功能扩展JPA注释,并将这些注释放在包org.hibernate.annotations

如果没有为该JPA注释添加Hibernate指定的功能(例如@OneToMany@ManyToOne),Hibernate将不会在其org.hibernate.annotations包中添加该注释,您必须使用这些根据JPA规范从javax.persistence注释。

通常,人们会使用JPA注释,直到遇到需要使用hibernate功能的情况。