Anteriormente, mi código Interceptor funcionaba bien para Hibernate 3. Después de actualizar a Hibernate 5 y hacer los cambios necesarios, los métodos de devolución de llamada como onSave y onFlushDirty dejaron de funcionar.
Con respecto a los cambios en la biblioteca, debajo de Hibernate 3 jars reemplacé con Hibernate 5 jars.
Hibernate 3 frascos reemplazados-
Hibernate 5 frascos agregados-
A continuación se muestra mi código Interceptor-
public class CustomInterceptor extends EmptyInterceptor { @Override public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { System.out.println("onFlushDirty called"); return super.onFlushDirty(entity, id, currentState, previousState, propertyNames, types); } @Override public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { System.out.println("onSavecalled"); return super.onSave(entity, id, state, propertyNames, types); } }
Si alguien puede señalar lo que me falta o cualquier corrección que deba hacer, sería muy útil.
Tenga en cuenta: toda la aplicación funciona sin problemas, excepto que los métodos de devolución de llamada del interceptor no se llaman.
Podrías intentar con lo siguiente:
Session session = sessionFactory.withOptions() .interceptor(new CustomInterceptor()) .openSession();