我可以仅通过使用JPA来跟踪整个Entity-Graphs状态吗?
考虑在其中具有至少两个Collection的两个或三个类的层次结构。
通过使用JPA @Post ...批注,我只能跟踪实际实体,而不能跟踪其子级或集合,因为它几乎只是包装的数据库事件。
我知道Hibernate可以做到这一点,但是我不想依靠JPA的实现来做到这一点。
如果至少有一种使用EclipseLink的方法,我会很高兴。
不确定这是否是您要搜索的内容,但是您可以像这样检测实体上的更改:
Account a = em.merge(account);
final JpaEntityManager jpaEntityManager = (JpaEntityManager) em.getDelegate();
final UnitOfWorkChangeSet changeSet = jpaEntityManager.getUnitOfWork().getCurrentChanges();
final ObjectChangeSet accountChangeSet = changeSet.getObjectChangeSetForClone(a);
final ObjectChangeSet userChangeSet = changeSet.getObjectChangeSetForClone(a.getUser());
em.clear();
//checks only for these 2 specific fields; changeSet.hasChanges() would check for all changes
return accountChangeSet.hasChangeFor("credits") || userChangeSet.hasChangeFor("name");
希望这会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句