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);
}
}
}