当我使用@Entity注释类并尝试解析依赖项时,我可以在两个不同的包javax.persistence.Entity和org.hibernate.annotations.Entity中选择包。
javax包是JPA的实体注释,但是为什么会有hibernate的实体注释,它与JPA的注释有区别?仅仅是允许定义更多属性的扩展吗?
org.hibernate.annotations.Entity
具有一些javax.persistence.Entity
尚未标准化的额外属性。仅当AnnotationConfiguration
直接使用hibernate
或JPA提供程序为hibernate时,这些附加功能才有效。
从 常见问题解答:
编辑:
编辑: 新建链接答案:
新建链接特定问题:
我使用@ org.hibernate.annotations.Entity并获得未知实体异常
始终导入@ javax.persistence.Entity
@ org.hibernate.annotations.Entity完成@ javax.persistence.Entity,但不能替代
例如,有一个名为的属性optimisticLock
,该属性告诉hibernate 在更新时是使用标准 版本列
还是比较所有列。此行为不在JPA规范中,因此为了对其进行配置,必须使用在其自己的注释中找到的特定于hibernate的扩展。
像这样:
@Entity
@org.hibernate.annotations.Entity(optimisticLock=OptimisticLockType.ALL)
public class MyEntity implements Serializable {
...
}
问题内容: 当我使用@Entity注释类并尝试解决依赖关系时,我可以在两个不同的包javax.persistence.Entity和org.hibernate.annotations.Entity中选择包。 javax包是JPA的实体注释,但是为什么会有休眠的实体注释,它与JPA的注释有区别?仅仅是允许定义更多属性的扩展吗? 问题答案: 具有一些尚未标准化的额外属性。仅当直接使用hibernate
本文向大家介绍解释强实体和弱实体之间的区别,包括了解释强实体和弱实体之间的区别的使用技巧和注意事项,需要的朋友参考一下 强实体 强实体独立于架构中的任何其他实体。一个强大的实体总是有一个主键。在ER图中,强实体由矩形表示。两个强实体之间的关系用菱形表示。一组强实体称为强实体集。 弱实体 弱实体依赖于强实体,没有相应的强就不能存在。它具有与强大实体相关的外键。弱实体由双矩形表示。强实体和弱实体之间的
使用实体图时,JPA Level 1缓存是如何工作的? 如果我打电话: (顺便说一下,我在这里使用Spring Data,这是我自定义存储库中的一个方法,但这与问题无关)。 这将使用适当的SELECT语句访问数据库,该语句包括系统和制造商表所需的所有连接。这是完美的工作和预期。 然而,如果我称之为: 第一个findOne调用将仅通过选择工具表来命中数据库,这是正常的,但第二个findOne不会命中
问题内容: 但没人回答我的下一个问题。经典的hibernate方法使用和JPA 实现之间有什么区别?我听说此JPA实现使用并像包装器一样工作,这是真的吗? 问题答案: 确实。 JPA只是一个API,允许您从使用的持久层中进行抽象。Hibernate提供了充当接口的实现,它使用与Hibernate 相同的基础方法。 这个想法是,例如,您可以将实现切换到Eclipse Link,而不必更改任何源代码。
问题内容: 如果我回滚,会话中的实体会怎样?他们会在交易之前回到状态吗?特别是他们会获得新的ID吗? 例: 更新 : 我已经进行了Hibernate 4测试。测试后,该实体已成为新的ID。 问题答案: 我将简单地引用JPA实现(3.3.2事务回滚): 对于事务范围和扩展的持久性上下文,事务回滚都会导致所有先前存在的托管实例和已删除实例[31]分离。实例的状态将是事务回滚时的实例状态。事务回滚通常会
问题内容: 我有两个分别以双向一对多关系存在的实体类 A 和 B。 A.java: B.java 在一个简单的控制台应用程序中,我从数据库中获取了特定的 A 行,并尝试删除其详细信息 B 行(随机),但是 JPA / Hibernate* 不仅删除了该行-甚至没有向该行发出任何 DELETE 语句。数据库。删除 B 行的唯一方法是从 A.java 的集合( LinkedHashSet )中删除相应