com.googlecode.jpattern.service.transaction.TransactionBeginCommand Maven / Gradle / Ivy
package com.googlecode.jpattern.service.transaction;
import com.googlecode.jpattern.core.command.NullCommand;
import com.googlecode.jpattern.core.command.ACommand;
import com.googlecode.jpattern.core.command.ICommand;
import com.googlecode.jpattern.core.command.ICommandResult;
import com.googlecode.jpattern.logger.ILogger;
/**
*
* @author Francesco Cina'
*
* 22 Apr 2011
*/
public class TransactionBeginCommand extends ACommand {
private static final long serialVersionUID = 1L;
private ILogger logger;
private ATransactionManager transactionManager;
private final ATransactionDefinition transactionDefinition;
public TransactionBeginCommand( ATransactionDefinition transactionDefinition ) {
this( transactionDefinition, new NullCommand());
}
public TransactionBeginCommand( ATransactionDefinition transactionDefinition, ICommand previousCommand) {
super(previousCommand);
this.transactionDefinition = transactionDefinition;
}
@Override
protected void result(ICommandResult result) {
logger = getLogger();
logger.debug("result", "Starting transaction with transactionManager: " + transactionDefinition.getTransactionManagerName());
transactionDefinition.setTransactionManagerFromService(getProvider().getTransactionService());
transactionManager = transactionDefinition.getTransactionManager();
transactionManager.setForceReadOnly( transactionDefinition.isForceReadOnly() );
transactionManager.setForceNewTransaction( transactionDefinition.isForceNewTransaction() );
transactionDefinition.setNewTransaction( transactionManager.beginTransaction(getProvider()) );
}
@Override
protected void internalRollBack(ICommandResult result) {
logger.info("internalRollBack", "Rollback transaction with transactionManager: " + transactionDefinition.getTransactionManagerName());
transactionManager.rollback(getProvider());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy