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

Fre*_*ind 1 annotations hibernate jpa

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

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

Ken*_*han 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包中创建该注释,您必须javax.persistence根据JPA规范使用这些注释 .

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