我的问题很简单,但总的来说非常重要 - 我认为。我已经研究了几个小时,但没有发现任何有用的东西。
介绍:
我有一个名为 Employee 的实体 - 这是我的系统的中心类(比如说它的人力资源管理)。通过写中心,我认为它与其他实体有很多关系。其中有 OneToOne、OneToMany 和 ManyToOne 属性。
问题:
在某些情况下,我必须刷新此实体(它还具有“字符串名称”等基本属性) - 在一个 EntityManager 上下文(休眠会话)中更改它并且必须在其他上下文中刷新之后。当然我可以用它:
entityManager.refreash(employee);
但是...它也会像“一百”个相关实体一样刷新(提到:1-1,-1, 1-关系),因为这些关系具有注释参数 Cascade.All 或 Cascade.REFREASH。在这种情况下不需要什么 - 我只在这种情况下使用 Employee 实体本身。什么是不想要的,因为它会影响性能,甚至局部需要 0.5 秒......
问题:
有没有什么方法可以刷新实体,可选地“关闭”其属性上的级联。或者也许:有没有办法使用 Hibernate/JPA 仅刷新实体的特定属性?
当我在这些情况下刷新实体时,我真的不希望 Hibernate 触发 20 个以上的长 SQL 查询,但在其他情况下是需要的。
换句话说,我想说我需要像“respectCascadesOnRefresh=true/false”这样的选项,可以在刷新之前设置。
还有其他想法吗?
任何帮助表示赞赏,
Pedro
附:不,您不能手动使用级联,因为此注释在生成数据库方案时使用一次。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)