gpt4 book ai didi

java - JPA 实体和 Hibernate 实体的区别

转载 作者:IT老高 更新时间:2023-10-28 20:56:05 24 4
gpt4 key购买 nike

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

javax包是JPA的entity-annotation,但是为什么会有hibernate entity-annotation,和JPA的annotation有什么区别呢?它只是允许定义更多属性的扩展吗?

最佳答案

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 {
...
}

关于java - JPA 实体和 Hibernate 实体的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com