Example usage for org.hibernate.event.spi EventSource getActionQueue

List of usage examples for org.hibernate.event.spi EventSource getActionQueue

Introduction

In this page you can find the example usage for org.hibernate.event.spi EventSource getActionQueue.

Prototype

ActionQueue getActionQueue();

Source Link

Document

Get the ActionQueue for this session

Usage

From source file:com.googlecode.hibernate.audit.synchronization.AuditProcessManager.java

License:Open Source License

public AuditProcess get(EventSource session) {
    final Transaction transaction = session.accessTransaction();

    AuditProcess auditProcess = auditProcesses.get(transaction);
    if (auditProcess == null) {
        auditProcess = new AuditProcess(auditConfiguration, session);
        auditProcesses.put(transaction, auditProcess);

        session.getActionQueue().registerProcess(new BeforeTransactionCompletionProcess() {
            @Override//from  ww  w  . j  a v a 2 s . c  o  m
            public void doBeforeTransactionCompletion(SessionImplementor session) {
                AuditProcess process = auditProcesses.get(transaction);
                if (process != null) {
                    process.doBeforeTransactionCompletion(session);
                }
            }
        });

        session.getActionQueue().registerProcess(new AfterTransactionCompletionProcess() {
            @Override
            public void doAfterTransactionCompletion(boolean success,
                    SharedSessionContractImplementor session) {
                auditProcesses.remove(transaction);
            }
        });
    }

    return auditProcess;
}

From source file:com.googlecode.hibernate.audit.synchronization.AuditSynchronizationManager.java

License:Open Source License

public AuditSynchronization get(EventSource session) {
    final Transaction transaction = session.getTransaction();

    AuditSynchronization synchronization = syncronizations.get(transaction);
    if (synchronization == null) {
        synchronization = new AuditSynchronization(this, session);
        syncronizations.put(transaction, synchronization);

        session.getActionQueue().registerProcess(synchronization);
        session.getActionQueue().registerProcess(new AfterTransactionCompletionProcess() {
            public void doAfterTransactionCompletion(boolean success, SessionImplementor session) {
                syncronizations.remove(transaction);
            }//from w ww .j  ava  2  s. c  om
        });
        //auditConfiguration.getExtensionManager().getTransactionSyncronization().registerSynchronization(session, synchronization);
    }

    return synchronization;
}

From source file:org.grails.orm.hibernate.events.PatchedDefaultFlushEventListener.java

License:Apache License

@Override
protected void performExecutions(EventSource session) throws HibernateException {
    session.getPersistenceContext().setFlushing(true);
    try {//from w w w . ja v  a 2 s.c o m
        session.getTransactionCoordinator().getJdbcCoordinator().flushBeginning();
        // we need to lock the collection caches before
        // executing entity inserts/updates in order to
        // account for bidi associations
        session.getActionQueue().prepareActions();
        session.getActionQueue().executeActions();
    } catch (HibernateException he) {
        LOG.error("Could not synchronize database state with session", he);
        throw he;
    } finally {
        session.getPersistenceContext().setFlushing(false);
        session.getTransactionCoordinator().getJdbcCoordinator().flushEnding();
    }
}