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

当我用@Entity注释一个类并尝试解决依赖,我得到选择两个不同的包之间的包javax.persistence.Entity和org.hibernate.annotations.Entity

javax包是JPA的实体注释,但为什么有一个hibernate实体注释和它与JPA的注释有什么区别?它只是一个扩展,允许定义更多的属性?

org.hibernate.annotations.Entity有一些额外的属性,javax.persistence.Entity没有标准化。只有直接使用hibernate的AnnotationConfiguration或者如果hibernate是JPA提供者,额外的功能才能工作。

the FAQ
编辑:新链接the specific question

编辑:新链接the answer

I use @org.hibernate.annotations.Entity and get an Unknown entity exception

Always import @javax.persistence.Entity

@org.hibernate.annotations.Entity completes @javax.persistence.Entity but is not a replacement

例如,有一个称为optimisticLock的属性,它告诉hibernate在更新时是使用标准版本列还是比较所有列。这种行为不在JPA规范中,因此为了配置它,必须使用hibernate特定的扩展在他们自己的注释中找到。

喜欢这个:

@Entity
@org.hibernate.annotations.Entity(optimisticLock=OptimisticLockType.ALL)
public class MyEntity implements Serializable {
...
}
翻译自:https://stackoverflow.com/questions/955515/difference-between-jpa-entity-and-hibernate-entity

转载注明原文:java – JPA实体和Hibernate实体之间的区别