티스토리 뷰

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 문이 실행이 되지 않았다. 

성공!!
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함