代码之家  ›  专栏  ›  技术社区  ›  KCL

JPA实体和Hibernate实体之间的区别

  •  34
  • KCL  · 技术社区  · 17 年前

    当我用@Entity注释一个类并尝试解析依赖关系时,我可以在两个不同的包中选择包,javax.persistence.Entity和org.hibernate.annotations.Entity

    javax包是JPA的实体注释,但是为什么会有hibernate实体注释呢?它与JPA的注释有什么不同呢?它只是允许定义更多属性的扩展吗?

    3 回复  |  直到 17 年前
        1
  •  36
  •   HMM    11 年前

    org.hibernate.annotations.Entity 有一些额外的属性 javax.persistence.Entity 没有标准化。只有使用hibernate的 AnnotationConfiguration 直接或如果hibernate是JPA提供程序。

    从…起 the FAQ : 编辑: 新链接 the specific question : 编辑: 新链接 the answer :

    始终导入@javax.persistence.Entity

    @org.hibernate.annotations.Entity完成@javax.persistence.Entity,但不是替换

    optimisticLock ,它告诉hibernate是否使用该标准 版本列

    这样地:

    @Entity
    @org.hibernate.annotations.Entity(optimisticLock=OptimisticLockType.ALL)
    public class MyEntity implements Serializable {
    ...
    }
    
        2
  •  1
  •   Ganesamoorthi    15 年前

    @如果您想使用JDBC模板或ibatis,我们需要更改代码。如果我们使用javax.persistence,则无需更改代码。这是org.hibernate.annotations和javax持久性之间的主要区别

        3
  •  -1
  •   Peter D    17 年前

    区别可能只是在命名上。它们可能在Hibernate包空间和javax包空间中提供相同的类。