'롤백'에 해당되는 글 1건

  1. 2008.04.24 [Springframework] 트랜젝션 롤백할 때 주의할 점! (2)
 

해당 메소드에서 catch해버리면 롤백이 안됩니다-_-;

[code]
@Transactional(readOnly=true, rollbackFor={Throwable.class})
 public void insertData() throws Throwable {
  try {
   getSqlMapClientTemplate().insert("insertData");
   System.out.println("oracle에 insert성공");
   throw new IOException();
  } catch (IOException e) {
   System.out.println("io예외발생");
  }
 }
[/code]

여기서 처럼 IOException이 발생했는데 해당 트랜젝션으로 설정한 메소드에서 예외를 catch해버리면 롤백이 안되더라구요-_-;
그 메소드를 호출한 놈한테 가서 해야합니다.
main에서 호출했다고 하면, main에 가서

[code]
try {
   testInsertOracle.insertData();
  } catch (Throwable e) {
   System.out.println("예외발생");
  }
[/code]
요렇게 해줘야 합니다. 메소드에 있는 catch는 빼구요 ^^

 
Posted by 머드초보

댓글을 달아 주세요

  1. BlogIcon THLIFE 2008.06.30 15:23  댓글주소  수정/삭제  댓글쓰기

    본 포스팅을 보고 몇일간의 삽질을 마무리 했습니다. ^_^ 감사합니다!!!

    • 머드초보 2008.06.30 22:12  댓글주소  수정/삭제

      도움이 되셨다니 다행이네요 ^^
      저도 저거 트랜잭션이 롤백이 안되서 삽질했었는데-_-;
      AOP형태로 적용되는거라 그런 것 같아요 ^^
      반가워요~ ^^