您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

休眠中的PreInsert和PreUpdate事件监听器

休眠中的PreInsert和PreUpdate事件监听器

我创建了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类。

SQL 2022/1/1 18:17:22 有416人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶