List of usage examples for org.hibernate.event.spi EventSource getActionQueue
ActionQueue getActionQueue();
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(); } }