This文章指出,如果我们使用2个事务来获取第一个数据,然后使用后缀来获取惰性字段,则由于会话被重用并且会话本身保证可重复读取,因此不会遇到任何问题。但这似乎是不可能的,会话仅在涉及缓存中已存在的数据时才能满足可重复的读取要求。但是,如果该对象及其底层的惰性OTO被删除了怎么办?我知道对于收集它可能不会引起问题,它只会返回空的收集。但是OTO ... getChildField()
将返回代理(因为OTO已配置restricted=true
),但由于所有内容都为null,因此不应这样做。有人有答案吗?
最佳答案
这篇文章说了你的意思:在多个事务中按需加载对象并不可靠:
解决此问题的方法当然是适当的工作单元
划界和设计,可能会受到拦截的支持
技术,如此处的模式所示,和/或正确的提取
技术,以便特定单元的所有必需信息
可以以最小的影响,最佳的性能来检索工作,并且
可扩展性。