[Mybatis] seq.nextval의 결과가 -1?

LHR·2022년 11월 24일

Exception과의싸움

목록 보기
2/2

❓seq.nextval의 결과가 -1?

  • 시퀀스의 다음 값을 글번호로 넣어주려고 하고 있으나 -1이 들어옴.
  • 1회에 한해서 insert가 문제없이 되지만 이후부터는 ORA-00001 : unique constraint violated 발생하며 insert되지 않음

💯내가 해본 방법

  1. Oracle SQL Developer에서 seq의 증가단위, 현재값, 다음값을 확인해본다
    ALTER SEQUENCE 시퀀스명 INCREMENT BY 1; --시퀀스의 증가 단위를 수정
    SELECT 시퀀스명.nextval AS 시퀀스명 FROM DUAL; --시퀀스의 다음값
    SELECT 시퀀스명.currval AS 시퀀스명 FROM DUAL; -- 시퀀스의 현재값
  2. Mapper.xml, DAO, Service, Controller순으로 다시 확인해본다.

🔨원인...

어이없게도 이번 문제는 DAOImpl.java에서 Mybatis메소드를 selectOne이 아닌 update로 써서 발생한 문제였다...
시퀀스를 nextval로 값을 올려주는 sql문이라 select가 아니라 update와 헷갈렸다.
Mapper파일은 자주 작성하는 것이 아니니 헷갈리지 않게 조심!

0개의 댓글