【发布时间】:2023-03-25 10:17:01
【问题描述】:
假设我有一个与 Lazy Child 一对一关系的 Parent 类。假设有两个事务(查询同一个父子)正在运行:一个只是更新或者可能获取整个事物,而另一个删除子。如果删除首先提交,那么后面的事务对 getChild() 的调用会返回 null 吗?既然不能再查询孩子了?
【问题讨论】:
假设我有一个与 Lazy Child 一对一关系的 Parent 类。假设有两个事务(查询同一个父子)正在运行:一个只是更新或者可能获取整个事物,而另一个删除子。如果删除首先提交,那么后面的事务对 getChild() 的调用会返回 null 吗?既然不能再查询孩子了?
【问题讨论】:
是的!它将返回空值。 如果标记为 LAZY 的关系,则在调用它的 getter 方法之前不会加载子记录。 然后休眠将执行一个查询以从数据库中加载它。 所以如果一个事务删除了子记录,另一个将面临空值。
【讨论】: