List of usage examples for org.hibernate.event.service.spi EventListenerGroup appendListener
public void appendListener(T listener);
From source file:org.babyfish.hibernate.cfg.Configuration.java
License:Open Source License
@Override public XSessionFactory buildSessionFactory(ServiceRegistry serviceRegistry) throws HibernateException { Arguments.mustBeInstanceOfValue("serviceRegistry", Arguments.mustNotBeNull("serviceRegistry", serviceRegistry), StandardServiceRegistryImpl.class); replacePersisterClassResolver((AbstractServiceRegistryImpl) serviceRegistry); String originalCurrentSessionContext = this.getProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS); this.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread"); SessionFactoryImpl factory;/*from ww w. ja v a 2s . c o m*/ try { pathPlanKeyVlidationSuspended = true; try { factory = (SessionFactoryImpl) super.buildSessionFactory(serviceRegistry); } finally { pathPlanKeyVlidationSuspended = false; } } finally { if (originalCurrentSessionContext != null) { this.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, originalCurrentSessionContext); } else { this.getProperties().remove(Environment.CURRENT_SESSION_CONTEXT_CLASS); } } if (originalCurrentSessionContext != null) { factory.getProperties().setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, originalCurrentSessionContext); } else { factory.getProperties().remove(Environment.CURRENT_SESSION_CONTEXT_CLASS); } Dialect dialect = factory.getDialect(); if (dialect instanceof InstallableDialect) { ((InstallableDialect) dialect).install(factory); } EventListenerGroup<MergeEventListener> mergeEventListenerGroup = factory.getServiceRegistry() .getService(EventListenerRegistry.class).getEventListenerGroup(EventType.MERGE); MergeEventListener mergeEventListener = new ObjectModelMergeEventListener( mergeEventListenerGroup.listeners()); mergeEventListenerGroup.clear(); mergeEventListenerGroup.appendListener(mergeEventListener); setQueryPlanceCache(factory, this.createQueryPlanCache(factory)); for (ClassMetadata classMetadata : factory.getAllClassMetadata().values()) { if (Metadatas.getObjectModelFactoryProvider(classMetadata.getMappedClass()) != null) { //Validate whether JPA configuration is same with object model configuration HibernateMetadatas.of(classMetadata.getMappedClass()).getPersistentClass(factory); } } return SessionFactoryImplWrapper.wrap(factory); }
From source file:org.codehaus.groovy.grails.orm.hibernate.EventListenerIntegrator.java
License:Apache License
protected <T> void appendListeners(EventListenerRegistry listenerRegistry, EventType<T> eventType, Collection<T> listeners) { EventListenerGroup<T> group = listenerRegistry.getEventListenerGroup(eventType); for (T listener : listeners) { if (listener != null) { group.appendListener(listener); }//from w ww. j a v a 2s. com } }
From source file:org.grails.orm.hibernate.EventListenerIntegrator.java
License:Apache License
protected <T> void appendListeners(EventListenerRegistry listenerRegistry, EventType<T> eventType, Collection<T> listeners) { EventListenerGroup<T> group = listenerRegistry.getEventListenerGroup(eventType); for (T listener : listeners) { if (listener != null) { if (shouldOverrideListeners(eventType, listener)) { // since ClosureEventTriggeringInterceptor extends DefaultSaveOrUpdateEventListener we want to override instead of append the listener here // to avoid there being 2 implementations which would impact performance too group.clear();/* ww w . j a v a2s.c om*/ group.appendListener(listener); } else { group.appendListener(listener); } } } }
From source file:org.openeos.hibernate.internal.observers.ListenerObserver.java
License:Apache License
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override/* w w w. j a va 2s . c om*/ public void sessionFactoryCreated(SessionFactory factory) { LOG.debug("Session factory created... registering listeners in service registry"); ServiceRegistry serviceRegistry = ((SessionFactoryImplementor) factory).getServiceRegistry(); for (Entry<EventType, Object> entry : mapPreListeners.entrySet()) { EventListenerGroup group = serviceRegistry.getService(EventListenerRegistry.class) .getEventListenerGroup(entry.getKey()); group.prependListener(entry.getValue()); } for (Entry<EventType, Object> entry : mapPostListeners.entrySet()) { EventListenerGroup group = serviceRegistry.getService(EventListenerRegistry.class) .getEventListenerGroup(entry.getKey()); group.appendListener(entry.getValue()); } }