我意识到JPA不能像我期望的那样工作,因为我经常会在会话中结束多个单个实体的实例。Java JPA/Hibernate:如何避免会话中实体的多个实例?
这里的学习情况:父与@OneToMany
映射在一个单一的方法孩子的集合:
- 获取父P 实体
- 负荷集合的一个实例(包含C1和C2的实例):它包含C1和C2的一个实例
- 然后找到具有父P具有参数的优化JPA查询的特定子查询:Child C = dao.getSpecificChild(P)
这里我希望C是已经加载的两个实例之一(C1或C2)。我认为JPA会在当前会话中检查已经存在的实例。 但是JPA会加载一个新的C实例(不管这里是C1还是C2都没关系)。
让我最终下的两个不同的实例
我的问题是:这是预期的行为? 如果是这样,我如何在会话中协调我的实体实例?
欢呼
父P&dao.getSpecificChild(P)的实例通过使用相同或不同的实体管理器来获取 – 2011-01-19 11:04:42