miPlatform 또는 xPlatform + spring + ibatis 에서 프로시저 질문드립니다. 0 0 4,969

by Xeon [어플리케이션관련] 트랜잭션 [2012.10.29 16:56:55]



안녕하세요.

가입한지는 몇 년 됐는데 처음으로 글을 쓰는게 질문성이라 송구스럽네요.

개발만 하다보니 DB쪽은 좀 어렵네요.
 
다름이 아니오라, miplatform(xplatform) + spring + ibatis로 개발을 진행중입니다.

모든 저장 로직은 오라클 프로시져를 이용하고 있습니다.

스프링에서 dataset의 각각의 row를 for 문을 돌며 insert 프로시저를 호출하고 있습니다.

트랜잭션은 스프링의 Service에 @Transactional 또는 설정에서 Service단으로 걸려있고요.

예를 들어, 5개의 row를 인서트한다치면 for문을 5번 돌면서 insert 프로시저를 5번 호출하는 형태죠.

만약, 3번째 프로시저 호출중 Exception이 발생한다면 rollback을 해줘야 하는 상황입니다.

허나, 프로시저로 insert를 하여서 그런지 rollback이 되지 않고 exception 발생 이전의 data들은 commit이 되어 버리더군요.

이러한 경우를 겪으셨거나 해결책에 대해 아시는 고수님들이 계시다면 부탁 드리겠습니다.

미리 감사드립니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입