우선 말할건, 트랜잭션관리가 정확한 정답이 없다. 내가 찾아본 결과로는.. 확실한 답이 있다면, 찾으면 댓글 바랍니다.
조건
ibatis ,spring 3.0 을 mybatis springboot로 변경 (spring버전은 그렇게 중요하지 않다. )
mybatis에서 트랜잭션 유지, 설정
ibatis에서 mybatis 로 문법이 조금 바뀐거같긴하지만, 생각보다 이게 까다로움. 별별곳에서 문제가 생김. 뭐 그건 하다보면 빡치니까 알테니 트랜잭션만 이야기하겠다.
과정
ibatis 는
1
2
3
4
5
6
7
|
try {
sqlMapClient.startTransaction();
sqlMapClient.update("insertAccountViaParameterMap", account);
sqlMapClient.commitTransaction();
} finally {
sqlMapClient.endTransaction();
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
이런식이 가능하다. 누가봐도 딱 뭔소린지 안다.
근데 mybatis는 이게 안먹힘.
https://emflant.tistory.com/43
여기나 이런글들 보고, 해봤는데, 설정이 잘못됬는지 나는 잘 안됬다. ( 나중에 다시 테스트해보자 )
https://blog.naver.com/2feelus/220616977338
이 글을 참고한건 아니지만, 처리방식을 3가지로 보여준다. 가볍게 보기 좋음
어찌저찌 됬건 내가 사용하는 방식은 @Transactional 사용하는거다. 이것도 AOP 라고 책에서 봤음.
내경우엔 Service에서 트랜잭션이 필요한 부분을 따로 코드로 묶어서 처리했다.
이게 익숙해서 그런지 나는 이게 젤 쉽다고 느꼈음.
기존에 ibatis로 되어있어서, start ,end가 있기 때문에 똑같이 쓰려고 mybatis에도 똑같이 동작하는걸 찾아봤는데, 작동을 잘 안했다. 그래서 익숙한 방식인 @Transactional를 사용했다.
사용방법은 이건 금방 나올테니 스스로 찾아봅시다.
https://barunmo.blogspot.com/2013/06/mybatis.html
-자세한 설명이 있는 글
보다가 너무 길어서 넘겼는데, 잘 정리해둔 글이다
'Web > 스프링' 카테고리의 다른 글
kafka 컨슈머 실패시 Exception 으로 조건 구분하기 Exception체크 (0) | 2020.08.26 |
---|---|
Get RequestBody and ResponseBody at HandlerInterceptor 컨트롤러 추가 호출 (0) | 2020.07.28 |
스프링 <context:component-scan> 분석 (0) | 2019.05.07 |
[ORM] ORM이란? JPA 설명 (0) | 2019.03.26 |
Spring - 어디에서나 Spring 컨터이너 Bean 객체 얻어오기 (0) | 2019.03.15 |
댓글