我知道hibernate是JPA的一个实现,也有自己的特性。我正在尝试使用带有注释的hibernate,但我发现我必须在包“javax.persistence。*”下使用一些注释,例如:Column,OneToMany,ManyToOne等等。
我不想使用JPA,但我无法在包“org.hibernate.annotations”下找到像OneToMany这样的注释。那么,jpa annatations是hibernate的一部分吗?如果我想在jpa中使用hibernate,我必须使用一些“javax.persistence。*”注释?
答案 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功能的情况。