Example usage for org.hibernate.action.spi BeforeTransactionCompletionProcess BeforeTransactionCompletionProcess

List of usage examples for org.hibernate.action.spi BeforeTransactionCompletionProcess BeforeTransactionCompletionProcess

Introduction

In this page you can find the example usage for org.hibernate.action.spi BeforeTransactionCompletionProcess BeforeTransactionCompletionProcess.

Prototype

BeforeTransactionCompletionProcess

Source Link

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/*w  w  w  . j  a va  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;
}