Example usage for org.hibernate.event.spi EventType POST_COLLECTION_UPDATE

List of usage examples for org.hibernate.event.spi EventType POST_COLLECTION_UPDATE

Introduction

In this page you can find the example usage for org.hibernate.event.spi EventType POST_COLLECTION_UPDATE.

Prototype

EventType POST_COLLECTION_UPDATE

To view the source code for org.hibernate.event.spi EventType POST_COLLECTION_UPDATE.

Click Source Link

Usage

From source file:at.molindo.esi4j.module.hibernate.DefaultHibernateLifecycleInjector.java

License:Apache License

@Override
public synchronized void injectLifecycle(SessionFactory sessionFactory,
        Esi4JBatchedEventProcessor batchedEventProcessor) {
    if (_listener != null) {
        throw new IllegalStateException("already injected");
    }/*from w  ww.  java  2s .c o m*/

    SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) sessionFactory;

    EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry()
            .getService(EventListenerRegistry.class);

    _listener = doCreateListener(sessionFactoryImpl, batchedEventProcessor);

    if (_listener instanceof PostInsertEventListener) {
        if (registerPostCommitListeneres) {
            registry.appendListeners(EventType.POST_COMMIT_INSERT, (PostInsertEventListener) _listener);
        } else {
            registry.appendListeners(EventType.POST_INSERT, (PostInsertEventListener) _listener);
        }
    }

    if (_listener instanceof PostUpdateEventListener) {
        if (registerPostCommitListeneres) {
            registry.appendListeners(EventType.POST_COMMIT_UPDATE, (PostUpdateEventListener) _listener);
        } else {
            registry.appendListeners(EventType.POST_UPDATE, (PostUpdateEventListener) _listener);
        }
    }

    if (_listener instanceof PostDeleteEventListener) {
        if (registerPostCommitListeneres) {
            registry.appendListeners(EventType.POST_COMMIT_DELETE, (PostDeleteEventListener) _listener);
        } else {
            registry.appendListeners(EventType.POST_DELETE, (PostDeleteEventListener) _listener);
        }
    }

    // collections
    if (!registerPostCommitListeneres) {
        if (_listener instanceof PostCollectionRecreateEventListener) {
            registry.appendListeners(EventType.POST_COLLECTION_RECREATE,
                    (PostCollectionRecreateEventListener) _listener);
        }

        if (_listener instanceof PostCollectionRemoveEventListener) {
            registry.appendListeners(EventType.POST_COLLECTION_REMOVE,
                    (PostCollectionRemoveEventListener) _listener);
        }

        if (_listener instanceof PostCollectionUpdateEventListener) {
            registry.appendListeners(EventType.POST_COLLECTION_UPDATE,
                    (PostCollectionUpdateEventListener) _listener);
        }
    }
}