Mar*_*aun 7 java hibernate jpa
我可以通过仅使用JPA以某种方式跟踪整个Entity-Graphs状态吗?
考虑使用具有两个或三个类的层次结构,其中至少有一个Collection.
通过使用JPA @Post ... Annotations我只能跟踪实际的实体,而不是它的子项和/或集合,因为它几乎只是数据库事件包装.
我知道Hibernate可以做到这一点,但我不想依赖JPA的实现来做到这一点.
如果至少有一种方法可以使用EclipseLink,我会很高兴.
小智 7
不确定这是否是您正在搜索的内容,但您可以检测实体的更改,如下所示:
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");
Run Code Online (Sandbox Code Playgroud)
希望这有点帮助.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |