作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Hibernate 3.6 并对我的代码进行注释(而不是使用 hibernate 映射文件)。我遇到了使用与 Hibernate 的 CascadeType 不兼容的 JPA 级联选项的已知“问题”(有关更多信息,请参阅此链接 http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/)。
我希望对这个问题有更多的澄清。我有一些特别的问题:
1)所以@Cascade({CascadeType.SAVE_UPDATE})适用于saveOrUpdate(),但如果我使用merge()或persist(),它也适用吗?还是我必须使用所有三个 Hibernate CascadeTypes?
2) 我如何决定是使用 JPA 级联选项还是使用 Hibernate @Cascade 注释?
2) 在 Hibernate 中有一个针对此问题的“错误”,但开发人员显然认为这是一个文档问题,(我完全不同意他们),而且我没有看到它在所述文档中得到解决。任何人都知道为什么这是“按设计工作”而不是 Hibernate 的 JPA 实现中的错误?
提前谢谢了。
最佳答案
此行为记录在 11.11. Transitive persistence 中。 .
CascadeType.ALL
或根本没有级联。在这种情况下,JPA 注释就足够了,因为 JPA 的 CascadeType.ALL
也涵盖了所有的 Hibernate 操作。否则,如果您需要细粒度的级联控制(并使用 Hibernate 的 Session
接口(interface)),则需要 Hibernate 的 @Cascade
. EntityManager
一切正常。仅当您将 JPA 注释与 Hibernate 的 Session
结合使用时,才会存在此问题。界面。 关于hibernate - JPA和Hibernate级联之间的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4540806/
我是一名优秀的程序员,十分优秀!