我创建了Interceptor,并使用Hibernate EmptyInterceptor对其进行了扩展。保存对象时将调用
Override方法
onSave(),该对象尚未保存到数据库中,而
onFlushDirty()更新对象时将调用该方法,该对象尚未更新到数据库中。
在此功能中,我已通过其名称检查方法,其中必须在创建或更新时设置日期。
这是onFlushDirty()方法的示例代码。
public boolean onFlushDirty(Object entity,Serializable id,Object[] currentState, Object[] previousState,String[] propertyNames, Type[] types) { if ( entity instanceof City ) { for ( int i=0; i < propertyNames.length; i++ ) { if ( "lastUpdatedOn".equals( propertyNames[i] ) ) { currentState[i] = new Date(); return true; } } } return false;}这
lastUpdatedOn是我的方法名称,它设置了更新的记录日期。
onSave()方法:
public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { if ( entity instanceof City) { for ( int i=0; i<propertyNames.length; i++ ) { if ( "createdOn".equals( propertyNames[i] ) ) { state[i] = new Date(); return true; } } } return false;}这
createdOn是设置记录创建日期的方法。
使用此拦截器类扩展您的POJO类。



