Ich habe einen einfachen HibernateInterceptor, in dem ich grundsätzlich ein paar Felder automatisch einstellen möchte. Dieses Interceptor (siehe unten) erstreckt EmptyInterceptor:Hibernate Interceptor funktioniert nicht
public class EntityAuditInterceptor extends EmptyInterceptor {
/**
* The Serial Version UUID.
*/
private static final long serialVersionUID = 4636626262147801287L;
/* (non-Javadoc)
* @see org.hibernate.EmptyInterceptor#onFlushDirty(java.lang.Object, java.io.Serializable, java.lang.Object[], java.lang.Object[], java.lang.String[], org.hibernate.type.Type[])
*/
public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) {
// doing stuff here
return false;
}
/* (non-Javadoc)
* @see org.hibernate.EmptyInterceptor#onSave(java.lang.Object, java.io.Serializable, java.lang.Object[], java.lang.String[], org.hibernate.type.Type[])
*/
public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) {
// doing stuff here
return false;
}
}
I Verdrahtung ist eine Feder-Konfigurationsdatei wie folgt verwendet:
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="hsqlDbDataSource"/>
<property name="packagesToScan">
<list>
<value>com.dreamteam.lms.**.*</value>
</list>
</property>
<!-- Adding Interceptor here -->
<property name="entityInterceptor">
<bean class="com.dreamteam.lms.interceptors.EntityAuditInterceptor"></bean>
</property>
<property name="hibernateProperties">
<props>
<!--<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>-->
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
</props>
</property>
</bean>
Allerdings ist das Interceptor nie erreicht. Hat jemand eine Ahnung? Ich habe versucht, auch die folgenden auf die Transaktions-Manager Bean Definition Zugabe wie folgt:
<property name="entityInterceptor">
<ref local="entityAuditInterceptor"/>
</property>
Hallo gutch ... Ich habe Teile des Codes auskommentiert, so dass die Frage hier kürzer ist. Mein Problem ist, dass es den Abfangjäger überhaupt nicht betritt. Ich habe einen Haltepunkt im Abfangjäger platziert. Aber es wird nie ausgeführt. Ich bin wirklich ahnungslos. – Kros
@gutch könnten Sie sehr ähnliche Frage http://stackoverflow.com/questions/27602318/hibernate-myinterceptoronflushdirty-isne- aufgerufenen pls aussehen? –