본문 바로가기

Programming Practice/Spring

Spring transaction 설정_MySQL

1. 배경

1) 특별한 설정이 없을 경우, SqlSession은 개별 쿼리 별로 commit, rollback을 수행한다.

2) method 에서 insert, update, delete 쿼리를 수행해서 method 별로 commit, rollback을 수행할 경우 아래와 같이 한다.

Spring 에서는 개별 코드별로 transaction을 설정하지 않고, (programming transaction - 세세한 것의 설정이 가능하나, 코드 반복이 있고, 실수하기 쉽다.) transaction을 사용하겠다는 선언을 통해(declarative transaction) transaction을 설정할 수 있다.

2. 사용

1) DispatcherServlet-context.xml

transactionManager에 대해 아래와 같이 설정한다.

2) java(Repository)

: method 위에 @Transactional 을 붙여준다.