public class EventListenerRegisterHelper { public static void registerEventListener(SessionFactoryImplementor sessionFactoryImplementor, HibernateEventListener eventListener) { EventListenerRegistry eventListenerRegistry = sessionFactoryImplementor .getServiceRegistry().getService(EventListenerRegistry.class); eventListenerRegistry.appendListeners(EventType.POST_UPDATE, eventListener); eventListenerRegistry.appendListeners(EventType.POST_DELETE, eventListener); } /** * Base for the event listener to send topic message using custom topic connection. */ public static class HibernateEventListener implements PostUpdateEventListener, PostDeleteEventListener { @Override public void onPostUpdate(PostUpdateEvent event) { //Send topic message } @Override public void onPostDelete(PostDeleteEvent event) { //Send topic message } @Override public boolean requiresPostCommitHanding(EntityPersister persister) { return false; } @Override public boolean requiresPostCommitHandling(EntityPersister persister) { return false; } } }