MyBatis(SqlSession) - 프로시저 실행시 -1을 리턴하는 이유는?
오늘 업무를 보면서 이상한 현상을 발견하였다. 분명 Transaction은 잘 일어나는데 MyBatis의 SqlSession에서는 -1을 리턴받고 있는것이다. DB도 잘 저장되고, 서비스 진행에도 문제가 없는데 왜 -1을 리턴하는것일까? SqlSession은 대개 영향을 받은 행의 개수를 리턴한다고 한다. 그래서 팀원들 모두 -1을 리턴하는것은 오류라고 알고었고, 그게 맞다. 원인은 프로시저였다. 직접적으로 Update문을 작동시키는게 아니라 프로시저를 통해 Update를 작동시키기 때문에 프로시저의 실질적인 리턴은 영향을 받은 행의 개수가 아닌 NULL인것이다. MyBatis는 NULL을 받기때문에 오류로 인지하고 -1을 리턴하는것이었다. 이러한 문제를 해결하기위해서 프로시저에 리턴값을 입력해주고 실행..
2023.02.23