MyBatis(SqlSession) - 프로시저 실행시 -1을 리턴하는 이유는?

2023. 2. 23. 11:45Spring

오늘 업무를 보면서 이상한 현상을 발견하였다.

분명 Transaction은 잘 일어나는데 MyBatis의 SqlSession에서는 -1을 리턴받고 있는것이다.

DB도 잘 저장되고, 서비스 진행에도 문제가 없는데 왜 -1을 리턴하는것일까?

 

SqlSession은 대개 영향을 받은 행의 개수를 리턴한다고 한다. 

그래서 팀원들 모두 -1을 리턴하는것은 오류라고 알고었고, 그게 맞다.

 

원인은 프로시저였다. 직접적으로 Update문을 작동시키는게 아니라 프로시저를 통해

Update를 작동시키기 때문에 프로시저의 실질적인 리턴은 영향을 받은 행의 개수가 아닌 NULL인것이다.

MyBatis는 NULL을 받기때문에 오류로 인지하고 -1을 리턴하는것이었다.

 

이러한 문제를 해결하기위해서 프로시저에 리턴값을 입력해주고 실행을 하니 답답한 -1이 사라지게 되었다.

'Spring' 카테고리의 다른 글

WebClient  (0) 2023.05.22
RestTemplate  (0) 2023.05.22
OCP(Open-Close Principle)이란?  (0) 2023.02.20
Service와 ServiceImpl을 따로 두는 이유는 뭘까?  (0) 2023.02.20
Maven VS Gradle  (0) 2023.02.01