안녕하세요.
가입한지는 몇 년 됐는데 처음으로 글을 쓰는게 질문성이라 송구스럽네요.
개발만 하다보니 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이 되어 버리더군요.
이러한 경우를 겪으셨거나 해결책에 대해 아시는 고수님들이 계시다면 부탁 드리겠습니다.
미리 감사드립니다.