我的问题很简单,但总体很重要 - 我想。我已经做了几个小时的研究,但没有发现任何有用的东西。使用级联
介绍:
我有一个名为Employee的实体 - 这是我系统的中心类(可以说它的人力资源管理)。通过写作中心我认为它与其他实体有很多关系。其中有OneToOne,OneToMany和ManyToOne属性。 问题:
在某些情况下,我必须在一个EntityManager上下文(hibernate Session)中更改此实体(它也具有“String name”等基本属性)并且必须刷新其他实体。当然,我可以用它:
entityManager.refreash(employee);
但是......这也将刷新像“一百”相关的entites(提到:1-1,-1,1-关系),因为这些关系有注释参数Cascade.All或Cascade.REFREASH。在这种情况下不需要什么 - 我只在这种情况下使用Employee实体本身。什么是不想要的,因为它会触发性能,甚至在本地需要0.5秒...
问题:
有什么办法刷新实体可选择关闭其属性上的级联。或者,也许:有没有什么办法只使用Hibernate/JPA刷新实体的特定属性?
我真的不希望那些由Hibernate触发的20多个更长的SQL查询,当我在这些情况下刷新我的实体时,但在其他情况下它是需要的。
换句话说,我会说我需要像“respectCascadesOnRefresh = true/false”这样的选项,它可以在refreash之前设置。
还有其他想法吗?
赞赏任何帮助,
佩德罗
1.嗯......在这种情况下不是正确的选项,因为这不是一些“手动刷新”,确保它是由我的框架自动机制执行的,所以像“respectCascadesOnRefresh = true/false”这样的选项会有用。标准 - 在这种情况下我看不到它们有用。 2.你可能是对的:) 3.他们不尊重刷新。附:我不使用休眠来生成我的数据库模式。这不仅仅是为了生产“模式”吗? – Pedrop 2011-03-22 14:32:26
3.这并不能解决1-1和* -1的关系。并且:我使用它们:)感谢您的回答! :) – Pedrop 2011-03-22 14:38:42
对不起,我想写:“附言:我不使用Hibernate来生成我的数据库架构是不是它的发展。‘模式’只?”它是。 – Pedrop 2011-03-22 15:15:17