小编ken*_*nny的帖子

Hibernate实体拦截器触发但设置值不保存

我正在使用Spring配置的hibernate应用程序.有事务管理和auditInterceptor定义为entityInterceptor.当我调试代码时,我正在输入entityInterceptors方法并且正在设置日期,但是在保存结束时它们不在数据库中:(.

考虑以下配置

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">     
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=${hibernate.dialect}
                hibernate.show_sql=${hibernate.show_sql}
                hbm2ddl.auto=${hbm2ddl.auto}
            </value>
        </property>
        <property name="schemaUpdate">
            <value>true</value>
        </property>
        <property name="annotatedClasses">
            <list>
                                .. bunch of annotatedClasses" ...
            </list>
        </property>
    </bean>

<bean name="auditInterceptor" class="com.mbalogos.mba.dao.AuditInterceptor" />

    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
        <property name="entityInterceptor" ref="auditInterceptor"/>
    </bean>

    <bean id="namedQueryDao" class="com.mbalogos.mba.dao.NamedQueryDaoImpl">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
Run Code Online (Sandbox Code Playgroud)

并遵循entityInterceptor

public class AuditInterceptor extends EmptyInterceptor{

    /**
     * 
     */
    private static final long serialVersionUID = -8374988621501998008L;

    @Override
    public boolean onSave(Object entity, Serializable id, Object[] state, …
Run Code Online (Sandbox Code Playgroud)

hibernate spring-mvc spring-transactions

6
推荐指数
1
解决办法
3824
查看次数