是)我有的:
我有Hibernate实体,它包含许多非瞬态字段,包括集合.用户可以单独更新每个字段或一次更新某些字段.
真是个挑战:
在处理程序中,我应该检查实体的哪个字段已被更改:
public void handle(Entity newVersion) {
Session session = sessionFactory.openSession();
Entity oldVersion = (Entity) session.get(Entity.class, entity.getId());
List changedFields = compareChanges(oldVersion, newVersion); //HOW TO CHECK WHICH FIELDS ARE CHANGED?
}
Run Code Online (Sandbox Code Playgroud)
出于安全性和通知原因,我想这样做.手段:
真是个问题:
我的代码非常难看.实际上我遍历所有字段/集合和调用equals
方法.
题:
可能是Hibernate提供了更优雅的方式来检查哪些字段已被修改?怎么样?
PS
@victorantunes提供了一个解决方案,但对我来说似乎太全面了.可能是一些替代品?