본문 바로가기
SPRING/web 에서 @Transactional 이 roll back 안될 때

[ SPRING ] Web 에서 @Transactional 이 roll back 안되는 경우

by 정윤재 2012. 2. 2.

web.xml 에서 applicationContext.xml 과 dispathcerServlet 또는 webApplicationContext

로 분리 할 경우 DB 설정 한 곳에서 (applicationContext 쪽 이다.)

    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref="dataSource" />
    </bean>
   
    <!-- 어노테이션방식 트랜잭션 -->
       <tx:annotation-driven transaction-manager="transactionManager" />

이런 방식으로 어노테이션 방식의 트랜잭션을 설정하였는데

클래스든 메소드든 @Transactional 를 설정하였는데 적용 되지 않을 때가 있다

web 쪽 설정 (webApplicationContext 나 dispatcherServlet 쪽) 에

 <!-- 트랜잭션 설정 -->
 <tx:annotation-driven proxy-target-class="true"/>

이렇게 설정을 추가 해 보자

applicationContext 쪽에서 DB 설정을 했는데 이 설정은 web 쪽에서 설정 된

빈들에 적용이 안되기 때문에 위와 같이 설정을 해 줘야 @Transactional  이

적용 될 수 있다.


댓글