Java 托管实体中的脏字段列表
如何从托管实体获取脏字段列表?我知道当我使用hibernate事件时,我可以做这样的事情Java 托管实体中的脏字段列表,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,如何从托管实体获取脏字段列表?我知道当我使用hibernate事件时,我可以做这样的事情 public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState,
public boolean onFlushDirty(Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types)
但是我希望在我的实体上没有任何特殊的持久性操作。将一个字段一个字段地与原始对象进行比较也是个坏主意。检查此链接@我查过了,但什么也没找到。用户建议使用需要执行持久性操作的事件,但我认为这是一种糟糕的设计。我在找更优雅的东西。第二个解决方案是使用envers,与我想要实现的相比,这会带来很大的开销。无论如何,谢谢你的回答,我以前不知道关于会话范围事件:)但是检查/控制生命周期和状态的拦截器有什么不好的呢?不客气!;-)如果我错了,请纠正我。当您创建拦截器时,它将应用于所有实体的所有持久性操作,而不仅仅是我想要的单个实体。第二件事,我必须做一个持久性操作来调用我的一个拦截器方法(例如flush)。我不想。如果我的代码是透明的,那就更好了。