如果我想通过 Annotation 使用 hibernate,我必须使用 javax.persistence.* 吗?

Posted

技术标签:

【中文标题】如果我想通过 Annotation 使用 hibernate,我必须使用 javax.persistence.* 吗?【英文标题】:If I want to use hibernate with Annotation, do I have to use javax.persistence.*? 【发布时间】:2011-11-29 06:23:04 【问题描述】:

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

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

【问题讨论】:

在我看来;如果您需要 JPA 注释,则不应避免不使用 JPA。在您的情况下,JPA 扩展了 Hibernate 并且您需要它,那么为什么不将 JPA 与 hibernate 一起使用。 您为什么不想尽可能使用 JPA? 复制***.com/questions/8306793/… 这两个问题都是我的,我不认为它们是重复的。 【参考方案1】:

如果我想在 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 注释,直到遇到需要使用休眠功能的情况。

【讨论】:

以上是关于如果我想通过 Annotation 使用 hibernate,我必须使用 javax.persistence.* 吗?的主要内容,如果未能解决你的问题,请参考以下文章

k8s Nginx Ingress 常用的 9个 配置(annotation)

利用getHibernateTemplate实现简单的操作

hibernate annotation注解方式来处理映射关系

hibernate annotation注解方式来处理映射关系

spring中的annotation注解类配置

Annotation