List of usage examples for org.hibernate.event.spi EventType resolveEventTypeByName
public static EventType resolveEventTypeByName(final String eventName)
From source file:org.codehaus.groovy.grails.orm.hibernate.EventListenerIntegrator.java
License:Apache License
@SuppressWarnings({ "unchecked", "rawtypes" }) public void integrate(Configuration config, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { EventListenerRegistry listenerRegistry = serviceRegistry.getService(EventListenerRegistry.class); if (eventListeners != null) { for (Map.Entry<String, Object> entry : eventListeners.entrySet()) { EventType type = EventType.resolveEventTypeByName(entry.getKey()); Object listenerObject = entry.getValue(); if (listenerObject instanceof Collection) { appendListeners(listenerRegistry, type, (Collection) listenerObject); } else if (listenerObject != null) { appendListeners(listenerRegistry, type, Collections.singleton(listenerObject)); }/*from w w w . j ava2 s . c o m*/ } } if (hibernateEventListeners != null && hibernateEventListeners.getListenerMap() != null) { Map<String, Object> listenerMap = hibernateEventListeners.getListenerMap(); for (EventType<?> type : TYPES) { appendListeners(listenerRegistry, type, listenerMap); } } // register workaround for GRAILS-8988 (do nullability checks for inserts in last PreInsertEventListener) ClosureEventTriggeringInterceptor.addNullabilityCheckerPreInsertEventListener(listenerRegistry); }
From source file:org.dspace.app.cris.util.HibernateEventRegistry.java
public void init() { EventListenerRegistry eventListenerRegistry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry() .getService(EventListenerRegistry.class); // If you wish to have custom determination and handling of "duplicate" // listeners, you would have to add an // implementation of the // org.hibernate.event.service.spi.DuplicationStrategy contract like // this/*w w w . j a va 2 s. c o m*/ // eventListenerRegistry.addDuplicationStrategy( myDuplicationStrategy // ); // EventListenerRegistry defines 3 ways to register listeners: // 1) This form overrides any existing registrations with // eventListenerRegistry.setListeners( EventType.AUTO_FLUSH, // myCompleteSetOfListeners ); // 2) This form adds the specified listener(s) to the beginning of the // listener chain // eventListenerRegistry.prependListeners( EventType.AUTO_FLUSH, // myListenersToBeCalledFirst ); // 3) This form adds the specified listener(s) to the end of the // listener chain // eventListenerRegistry.appendListeners( EventType.AUTO_FLUSH, // myListenersToBeCalledLast ); for (String eTypeStr : eventListeners.keySet()) { EventType eType = EventType.resolveEventTypeByName(eTypeStr); for (Object listener : eventListeners.get(eTypeStr)) { eventListenerRegistry.setListeners(eType, listener); } } }
From source file:org.grails.orm.hibernate.EventListenerIntegrator.java
License:Apache License
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override//from w w w . j ava 2 s. c o m public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { EventListenerRegistry listenerRegistry = serviceRegistry.getService(EventListenerRegistry.class); if (eventListeners != null) { for (Map.Entry<String, Object> entry : eventListeners.entrySet()) { EventType type = EventType.resolveEventTypeByName(entry.getKey()); Object listenerObject = entry.getValue(); if (listenerObject instanceof Collection) { appendListeners(listenerRegistry, type, (Collection) listenerObject); } else if (listenerObject != null) { appendListeners(listenerRegistry, type, Collections.singleton(listenerObject)); } } } if (hibernateEventListeners != null && hibernateEventListeners.getListenerMap() != null) { Map<String, Object> listenerMap = hibernateEventListeners.getListenerMap(); for (EventType<?> type : TYPES) { appendListeners(listenerRegistry, type, listenerMap); } } }