diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java index 90328f13bc..65c9cca3ef 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/event/internal/CallbackRegistryImpl.java @@ -41,13 +41,15 @@ final class CallbackRegistryImpl implements CallbackRegistryImplementor { return; } - final HashMap map = determineAppropriateCallbackMap( callbacks[0].getCallbackType() ); - Callback[] entityCallbacks = map.get( entityClass ); - - if ( entityCallbacks != null ) { - callbacks = ArrayHelper.join( entityCallbacks, callbacks ); + for ( Callback callback : callbacks ) { + final HashMap map = determineAppropriateCallbackMap( callback.getCallbackType() ); + Callback[] entityCallbacks = map.get( entityClass ); + if ( entityCallbacks == null ) { + entityCallbacks = new Callback[0]; + } + entityCallbacks = ArrayHelper.join( entityCallbacks, callback ); + map.put( entityClass, entityCallbacks ); } - map.put( entityClass, callbacks ); } @Override