자바(Java)
[Spring-MyBatis-Oracle] 스프링 트랜잭션 하는 방법
xemaker
2018. 3. 14. 14:23
Spring-MyBatis-Oracle 프로그래밍을 하고 있었다.
mybatis insert 쿼리가 5~6개 있었는데 중간쯤에서 오류가 났다.
그런데 앞의 insert 쿼리가 실행이 되면서 안들어 가야할 값이 들어갔다.
그래서 트랜잭션을 걸어주려고 했다.
검색을 해보니..
프로그램상에서 트랜잭션을 마음대로 커밋(commit), 롤백(rollback) 할 수 있는 방법.
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setName("example-transaction");
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);
try{
}catch(Exception e){
transactionManager.rollback(status); }
transactionManager.commit(status);
이렇게 하니 중간에 오류가 나도 트랜잭션이 걸려서 이전 insert 문이 실행이 되지 않았다.
성공!!
mybatis insert 쿼리가 5~6개 있었는데 중간쯤에서 오류가 났다.
그런데 앞의 insert 쿼리가 실행이 되면서 안들어 가야할 값이 들어갔다.
그래서 트랜잭션을 걸어주려고 했다.
검색을 해보니..
프로그램상에서 트랜잭션을 마음대로 커밋(commit), 롤백(rollback) 할 수 있는 방법.
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setName("example-transaction");
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def);
try{
}catch(Exception e){
transactionManager.rollback(status); }
transactionManager.commit(status);
이렇게 하니 중간에 오류가 나도 트랜잭션이 걸려서 이전 insert 문이 실행이 되지 않았다.
성공!!