我拥有的:
我有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?
}
我想为了安全和通知的原因而做.手段:
>并非所有用户都可以修改所有字段
>我应该通过具体方式通知具体用户某些领域的变化.
有什么问题
我得到非常丑的代码实际上我遍历所有的字段/集合并调用equals方法.
题:
可能是Hibernate提供更优雅的方式来检查哪些字段已被修改?怎么样?
附:
@victorantunes提供了一个解决方案,但对我来说似乎太全面了.可能是一些替代品?