我找到了解决问题的方法。我通过在上添加了一个新方法
addChild来解决它,
Parent如下所示:
public void addChild(Child child) { child.setParent(this); if (Hibernate.isInitialized(getChildren()) { getChildren().add(child); } else { Hibernate.getSessionFactory().getCache().evictCollection( getClass().getName()+".children", this.getId()); } }
因此:如果子级由于某种原因已经加载,则新子级将添加到子级集中。这样可以确保已加载的集保持一致。如果 尚未
加载该集合,则将父集合设置为子集合,并逐出第二级缓存(此处描述了此需求:https : //github.com/hibernate/hibernate-
orm/pull/580)。由于尚未加载该集合,因此它也不会不一致。之后访问集时,Hibernate将加载包括新子集的集。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)