如果我想将 hibernate 与 Annotation 一起使用,我是否必须使用 javax.persistence.* ?
我知道hibernate是JPA的一个实现,也有自己的特点。我尝试使用带有注释的hibernate,但我发现我必须使用“javax.persistence.*”包下的一些注释,例如:Column、OneToMany、ManyToOne 等。
我不想使用 JPA,但我在包“org.hibernate.annotations”下找不到像 OneToMany 一样的注释。那么,jpa 注释是 hibernate 的一部分吗?如果我想将 hibernate 与 jpa 一起使用,我必须使用一些“javax.persistence.*”注释?
I know hibernate is an implementation of JPA, and also has its own features. I'm trying to use hibernate with annotations, but I found I have to use some annotations under package "javax.persistence.*", such as: Column, OneToMany, ManyToOne, and so on.
I don't want to use JPA, but I can't found same annotations like OneToMany under package "org.hibernate.annotations". So, are the jpa annatations part of hibernate? If I want to use hibernate with jpa, I have to use some of "javax.persistence.*" annotations?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,你是对的
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功能的情况。
Yes , you are right
The JPA spec. defines the JPA annotation in the
javax.persistence
package. Hibernate not only implements JPA spec , but extends it to adds more features . So , hibernate creates their own annotations which just extend the JPA annotation with the Hibernate features , and put these annotation inside the packageorg.hibernate.annotations
If there are no Hibernate specified features added for that JPA annotation (eg
@OneToMany
and@ManyToOne
) , Hibernate will not make that annotation in theirorg.hibernate.annotations
package and you have to use these annotation fromjavax.persistence
according to the JPA specification.Normally ,people will use JPA annotations until they come across a situation that requires to use hibernate features.