transaction 처리

코딩하는감자·2023년 4월 26일
@Autowired private PlatformTransactionManager transactionManager;
@Autowired private PlatformTransactionManager transactionManager4;

public void method() throws Exception {
		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);

		TransactionStatus status = transactionManager.getTransaction(def);
		TransactionStatus status4 = transactionManager4.getTransaction(def);

		
		try {

			// sqlSession4 사용 메서드 실행
			method4();
			
			// sqlSession 사용 메서드 실행
			method();
			
			
			// 위 과정이 모두 끝나고 commit 해야함 미리 커밋하고 그 아래 과정에서 Exception 발생 시 롤백 안됨
			transactionManager4.commit(status4);
			transactionManager.commit(status);

		} catch (Exception e) {
			// 반드시 롤백처리 해줘야함
			transactionManager.rollback(status);
			transactionManager4.rollback(status4);
			throw e;
		}

	}
}
profile
나는 말하는 감자다

0개의 댓글