我正在使用J2EE开发,使用JPA和Hibernate(4.0版本)来管理数据的持久性。
对于我的项目的某些实体,我需要更改Hibernate的默认脏检查机制,因此,在网上冲浪时,我发现有可能扩展EmptyInterceptor类,覆盖通常从Hibernate调用的findDirty方法,用于执行持久化或更新操作。 但是,此方法适用于整个实体。 实际上,findDirty的签名是:
public int[] findDirty(Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types)
我的问题是:有一个方法只适用于Entity的一个属性,它本身可以是另一个Entity但也是一个String,以确定它是否是脏的,并且在正的情况下返回它的索引。实体?
我的意思是,如果有一个类似于findDirty的方法(用于行为),而不是接受整个实体的输入,它只需要它的一个属性,并确定该属性是否是脏的或者不比较它的当前状态和以前的状态。