Controller 에서 @Transactional 트랜젝션처리가 가능한가요?
- 작성자 :
- 김*근
- 작성일 :
- 2013-02-26 10:26:05
- 조회수 :
- 1,973
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
수고 많으십니다.
현재 여러가지 트랜젝션이 포함되어 있는
Controller 에서
트랜젝션 처리를 하고 싶습니다만 가능한지요?
아님 ServiceImpl 에서만 가능한지요?
현재 Controller에서 100건을 한꺼번에 넣는 부분이 있습니다만
50번째에서 에러가 발생하면 49건이 입력이 되어 버리는 부분이 있습니다.
에러가 발생하면 전체 Roll Back 하고 싶습니다만,
그런데 Controller 에서
여러개의 ServiceImpl 을 호출하고 있습니다만
트랜젝션 처리가 가능한지요?
@Transactional 어노테이션은 ServiceImpl 에서만 가능하고
Controller에서는 불가한지요?
현재 여러가지 트랜젝션이 포함되어 있는
Controller 에서
트랜젝션 처리를 하고 싶습니다만 가능한지요?
아님 ServiceImpl 에서만 가능한지요?
현재 Controller에서 100건을 한꺼번에 넣는 부분이 있습니다만
50번째에서 에러가 발생하면 49건이 입력이 되어 버리는 부분이 있습니다.
에러가 발생하면 전체 Roll Back 하고 싶습니다만,
그런데 Controller 에서
여러개의 ServiceImpl 을 호출하고 있습니다만
트랜젝션 처리가 가능한지요?
@Transactional 어노테이션은 ServiceImpl 에서만 가능하고
Controller에서는 불가한지요?
A
안녕하세요.. 김영근님..
원칙적으로는 Service 부분에서 Transaction이 통제되는 것이 가이드입니다.
즉, Controller에서 transaction이 묶일 필요가 있는 부분은 별도의 Service로 도출하여 적용하시는 것이 추천해 드립니다..
추가적으로는 Controller에서는 @Transactional을 지정하셔도 transaction이 처리되지 않습니다.
기본적으로 인터페이스가 있는 경우만 Spring AOP가 적용되기 때문입니다.
혹.. Controller와 같인 class 자체에 @Transactional을 적용하시려면.. <annotation-driven proxy-target-class="true" />로 지정하시면 됩니다. (추천해 드리지 않는 방식)
그럼.. 즐거운 하루되십시오.
감사합니다.
원칙적으로는 Service 부분에서 Transaction이 통제되는 것이 가이드입니다.
즉, Controller에서 transaction이 묶일 필요가 있는 부분은 별도의 Service로 도출하여 적용하시는 것이 추천해 드립니다..
추가적으로는 Controller에서는 @Transactional을 지정하셔도 transaction이 처리되지 않습니다.
기본적으로 인터페이스가 있는 경우만 Spring AOP가 적용되기 때문입니다.
혹.. Controller와 같인 class 자체에 @Transactional을 적용하시려면.. <annotation-driven proxy-target-class="true" />로 지정하시면 됩니다. (추천해 드리지 않는 방식)
그럼.. 즐거운 하루되십시오.
감사합니다.