Spring @Transactional 사용 (ibatis rollback multiple DAO methods in a single transaction)

북마크 추가

serviceImpl


public class testServiceImpl implements testService{

    @Resource(name="testManageDAO")
    private TestManageDAO testManageDAO;
 
     @Transactional(rollbackFor=Exception.class)
     @Override
      public String save(TestVO testVO) throws Exception {
           // TODO Auto-generated method stub

           try {
                testManageDAO.insert~~~(key);
                testManageDAO.select~~~(key);
                testManageDAO.insert~~~(~~~):
           }catch{
                e.printStackTrace();
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

             //fail​
                return "1";
           }

           //success
           return "0";
      }

}​

 

try catch 사용시 수동 롤백 해줘야됨

 

insert, select 실행 후 마지막 insert에서 exception 발생 할 경우

 

앞에 실행된 쿼리 전부 롤백됨

 

 

AD
관리자
2015-02-07 14:04
SHARE