MSSQL & IBATIS @Transactional 처리 안됨
- 작성자 :
- R*E
- 작성일 :
- 2024-08-20 09:10:10
- 조회수 :
- 356
- 구분 :
- 개발환경 / 3.6
- 진행상태 :
- 완료
Q
//조회수 증가
@Override
public void increaseViewCount(int brdNo) {
boardDAO.increaseViewCount(brdNo);
}
//상세페이지 이동
@Override
@Transactional
public BoardDTO boardDetail(int brdNo) {
increaseViewCount(brdNo);
BoardDTO board = boardDAO.boardDetail(brdNo);
return board;
}
페이지 이동 시 조회수 증가하는 간단한 기능 구현하는데
상세 페이지 가지고 오는 select문에서 일부러 오류를 내도 조회수 증가가 되네요.
롤백이 안되고 커밋되는 이유가 뭘까요..
datasource에서 autocommit false로 설정하면 다른 기능들까지 커밋이 안돼서 어떻게 해야될지 모르겠습니다ㅜ
<property name="defaultAutoCommit" value="false"/>
@Override
public void increaseViewCount(int brdNo) {
boardDAO.increaseViewCount(brdNo);
}
//상세페이지 이동
@Override
@Transactional
public BoardDTO boardDetail(int brdNo) {
increaseViewCount(brdNo);
BoardDTO board = boardDAO.boardDetail(brdNo);
return board;
}
페이지 이동 시 조회수 증가하는 간단한 기능 구현하는데
상세 페이지 가지고 오는 select문에서 일부러 오류를 내도 조회수 증가가 되네요.
롤백이 안되고 커밋되는 이유가 뭘까요..
datasource에서 autocommit false로 설정하면 다른 기능들까지 커밋이 안돼서 어떻게 해야될지 모르겠습니다ㅜ
<property name="defaultAutoCommit" value="false"/>
환경정보
-
- OS 정보 : 윈도우 11
- 표준프레임워크 버전 : 3.6
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat 8.0.32
- DB 정보 : mssql
- 기타 환경 정보 : ibatis
A
안녕하세요.
표준프레임워크센터입니다.
@Transactional 을 사용하기 위해서는
트랜잭션 설정파일인 context-transaction.xml 파일에서
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>
를 추가 후 사용하셔야 합니다.
@Transactional 을 이용해 트랜잭션을 사용할 경우
트랜잭션이 필요할때마다 어노테이션을 작성해야하는 번거로움이 있어
AOP 설정을 이용해 트랜잭션을 적용할 범위를 지정하여 사용해보시기 바랍니다.
표준프레임워크에서 일반적으로 다음 파일에 정의되어 있으며
context-transaction.xml
다음과 같이 다음 패키지 및 클래스 규칙이 정의되어 있으니
egovframework.com..*Impl.*(..))
해당 패키지 및 클래스 정의 규칙에 포함되는 영역에서 작업하시면
좀더 편리 하실듯 합니다.
트랜잭션 설정과 관련된 사항은 아래 위키가이드를 참조하실 수 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:transaction:declarative_transaction_management
감사합니다.
표준프레임워크센터입니다.
@Transactional 을 사용하기 위해서는
트랜잭션 설정파일인 context-transaction.xml 파일에서
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>
를 추가 후 사용하셔야 합니다.
@Transactional 을 이용해 트랜잭션을 사용할 경우
트랜잭션이 필요할때마다 어노테이션을 작성해야하는 번거로움이 있어
AOP 설정을 이용해 트랜잭션을 적용할 범위를 지정하여 사용해보시기 바랍니다.
표준프레임워크에서 일반적으로 다음 파일에 정의되어 있으며
context-transaction.xml
다음과 같이 다음 패키지 및 클래스 규칙이 정의되어 있으니
egovframework.com..*Impl.*(..))
해당 패키지 및 클래스 정의 규칙에 포함되는 영역에서 작업하시면
좀더 편리 하실듯 합니다.
트랜잭션 설정과 관련된 사항은 아래 위키가이드를 참조하실 수 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:transaction:declarative_transaction_management
감사합니다.