@Override public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { final EventListenerRegistry eventListenerRegistry = serviceRegistry.getService(EventListenerRegistry.class); final EventListenerGroup<MergeEventListener> mergeListeners = eventListenerRegistry.getEventListenerGroup(EventType.MERGE); mergeListeners.addDuplicationStrategy(USE_DERIVED); mergeListeners.appendListener(new IdTransferringMergeEventListener()); }
public void integrate(Configuration configuration, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { final EventListenerRegistry eventListenerRegistry = serviceRegistry.getService(EventListenerRegistry.class); try { HibernateDataPublishListener listener = new HibernateDataPublishListener(); eventListenerRegistry.getEventListenerGroup(EventType.POST_INSERT).appendListener(listener); eventListenerRegistry.getEventListenerGroup(EventType.POST_UPDATE).appendListener(listener); eventListenerRegistry.getEventListenerGroup(EventType.POST_DELETE).appendListener(listener); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST).addDuplicationStrategy(new OverrideWrapStrategy<PersistEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST).appendListener(new HibernatePersistListener()); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST_ONFLUSH).addDuplicationStrategy(new OverrideWrapStrategy<PersistEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST_ONFLUSH).appendListener(new HibernatePersistOnFlushListener()); eventListenerRegistry.getEventListenerGroup(EventType.SAVE_UPDATE).addDuplicationStrategy(new OverrideWrapStrategy<SaveOrUpdateEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.SAVE_UPDATE).appendListener(new HibernateSaveOrUpdateListener()); eventListenerRegistry.getEventListenerGroup(EventType.MERGE).addDuplicationStrategy(new OverrideWrapStrategy<MergeEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.MERGE).appendListener(new HibernateMergeListener()); eventListenerRegistry.getEventListenerGroup(EventType.DELETE).addDuplicationStrategy(new OverrideWrapStrategy<DeleteEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.DELETE).appendListener(new HibernateDeleteListener()); eventListenerRegistry.getEventListenerGroup(EventType.LOCK).addDuplicationStrategy(new OverrideWrapStrategy<LockEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.LOCK).appendListener(new HibernateLockListener()); eventListenerRegistry.getEventListenerGroup(EventType.AUTO_FLUSH).addDuplicationStrategy(new OverrideWrapStrategy<AutoFlushEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.AUTO_FLUSH).appendListener(new HibernateAutoFlushListener()); eventListenerRegistry.getEventListenerGroup(EventType.FLUSH).addDuplicationStrategy(new OverrideWrapStrategy<FlushEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.FLUSH).appendListener(new HibernateFlushListener()); } catch (Exception e) { throw new RuntimeException("Could not setup Hibernate 4 listeners", e); } }
eventListenerRegistry.getEventListenerGroup(EventType.PRE_COLLECTION_UPDATE).appendListener(listener); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST).addDuplicationStrategy(new OverrideWrapStrategy<PersistEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST).appendListener(new HibernatePersistListener()); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST_ONFLUSH).addDuplicationStrategy(new OverrideWrapStrategy<PersistEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.PERSIST_ONFLUSH).appendListener(new HibernatePersistOnFlushListener()); eventListenerRegistry.getEventListenerGroup(EventType.SAVE_UPDATE).addDuplicationStrategy(new OverrideWrapStrategy<SaveOrUpdateEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.SAVE_UPDATE).appendListener(new HibernateSaveOrUpdateListener()); eventListenerRegistry.getEventListenerGroup(EventType.MERGE).addDuplicationStrategy(new OverrideWrapStrategy<MergeEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.MERGE).appendListener(new HibernateDataChangeMergeListener()); eventListenerRegistry.getEventListenerGroup(EventType.DELETE).addDuplicationStrategy(new OverrideWrapStrategy<DeleteEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.DELETE).appendListener(new HibernateDeleteListener()); eventListenerRegistry.getEventListenerGroup(EventType.LOCK).addDuplicationStrategy(new OverrideWrapStrategy<LockEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.LOCK).appendListener(new HibernateLockListener()); eventListenerRegistry.getEventListenerGroup(EventType.AUTO_FLUSH).addDuplicationStrategy(new OverrideWrapStrategy<AutoFlushEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.AUTO_FLUSH).appendListener(new HibernateAutoFlushListener()); eventListenerRegistry.getEventListenerGroup(EventType.FLUSH).addDuplicationStrategy(new OverrideWrapStrategy<FlushEventListener>()); eventListenerRegistry.getEventListenerGroup(EventType.FLUSH).appendListener(new HibernateFlushListener());