提问者:小点点

当Lazy孩子被另一个事务删除时的JPA-Hibernate行为


假设我有一个家长班,与一个懒惰的孩子有一对一的关系。假设有两个事务(查询同一个父子事务)正在运行:一个事务只是更新或获取整个事务,而另一个事务删除子事务。如果delete首先提交,那么后续事务对getChild()的调用是否返回null?既然它不能再查询孩子了?


共1个答案

匿名用户

是的!它将返回null。如果一个关系标记为LAZY,那么子记录将不会加载,直到你调用它的getter方法。然后Hibernate将执行一个查询从数据库中加载它。所以如果一个事务删除了子记录,另一个事务将面临空值。