트랜잭션 처리: mybatis @Transactional
- 작성자 :
- 전*진
- 작성일 :
- 2019-04-21 13:55:34
- 조회수 :
- 3,016
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
개발환경 : 전자정부 3.6.0
적용모듈 : eGovFrame common component > com > cmm 만 적용
목적 : @Transactional을 이용하여 트랜잭션 처리
증상 : junit 테스트 성공 후, ibatis는 정상 롤백 되는데, mybatis는 롤백되지 않음
처리코드 : defaultRollback = true 적용
Q.질문 : 전자정부 사용 시 mybatis에서 @Transactional 사용하려면 다르게 해줘야 하는 작업이 있나요?
------------------------------------------------------------------------------------------------------------
1. context-transaction.xml 맨 아래에 다음 코드 추가
<tx:annotation-driven transaction-manager="txManager"/>
2. 테스트 클래스에 트랜잭션 설정 추가
...
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)
public class SampleServiceTest {
@Test
@Transactional
public void insertSampleTest(){
// TODO
}
....
}
적용모듈 : eGovFrame common component > com > cmm 만 적용
목적 : @Transactional을 이용하여 트랜잭션 처리
증상 : junit 테스트 성공 후, ibatis는 정상 롤백 되는데, mybatis는 롤백되지 않음
처리코드 : defaultRollback = true 적용
Q.질문 : 전자정부 사용 시 mybatis에서 @Transactional 사용하려면 다르게 해줘야 하는 작업이 있나요?
------------------------------------------------------------------------------------------------------------
1. context-transaction.xml 맨 아래에 다음 코드 추가
<tx:annotation-driven transaction-manager="txManager"/>
2. 테스트 클래스에 트랜잭션 설정 추가
...
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)
public class SampleServiceTest {
@Test
@Transactional
public void insertSampleTest(){
// TODO
}
....
}
A
안녕하세요.
표준프레임워크센터 입니다.
1.
context-transaction.xml 파일에서 트랜잭션 관련
AOP 설정을 하는것은 맞습니다.
따라서 <tx:annotation-driven는 굳이 필요하지 않을듯 합니다.
<aop:pointcut id="requiredTx" 엘리멘트 부분을 보시면
egovframework.com 하위 패키지의 Impl이라는 이름을 가지고 있는
서비스에 트랜잭션이 설정되게 됩니다.
2.
@Transactional을 설정하게 되면
해당 Test 메소드에서
트랜잭션 처리가 정상적으로 수행될것으로 예상되고
Mybatis환경에서 실제 테스트 실행해 보면
정상적으로 동작되는것을 확인할수 있습니다.
감사합니다.
표준프레임워크센터 입니다.
1.
context-transaction.xml 파일에서 트랜잭션 관련
AOP 설정을 하는것은 맞습니다.
따라서 <tx:annotation-driven는 굳이 필요하지 않을듯 합니다.
<aop:pointcut id="requiredTx" 엘리멘트 부분을 보시면
egovframework.com 하위 패키지의 Impl이라는 이름을 가지고 있는
서비스에 트랜잭션이 설정되게 됩니다.
2.
@Transactional을 설정하게 되면
해당 Test 메소드에서
트랜잭션 처리가 정상적으로 수행될것으로 예상되고
Mybatis환경에서 실제 테스트 실행해 보면
정상적으로 동작되는것을 확인할수 있습니다.
감사합니다.