【问题标题】:If I want to use hibernate with Annotation, do I have to use javax.persistence.*?如果我想通过 Annotation 使用 hibernate,我必须使用 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?
  • 这两个问题都是我的,我不认为它们是重复的。

标签: hibernate jpa annotations


【解决方案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 注释,直到遇到需要使用休眠功能的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2013-10-05
    • 1970-01-01
    • 2022-11-20
    • 2018-06-23
    相关资源
    最近更新 更多