티스토리 뷰

개요

  • 레코드를 INSERT할 때 특정 칼럼을 기존값 + 1로 해야하는 케이스가 생겼다.
  • selectKey라는 값을 설정해서 하는 방법이 MyBatis 문서에 있고 @Options 방법도 있지만 그것보다 간단한 방법이 있어서 소개한다.

 

확인한 조건

  • DB: PostgreSQL 14.11
  • MyBatis: 3.5.13

 

INSERT문 UPDATE문의 RETURNING에 관해

  • 보통 UPDATE문을 실행하면 처리가 된 건수를 알려준다.
  • 그런데 끝에 RETURNING을 추가하면 처리 건수가 아닌 원하는 값을 반환해준다.(INSERT도 마찬가지)

@Insert가 아닌 @Select를 이용하자

  • INSERT동작이지만 위와 같이 결과값은 SELECT의 결과값과 같은 형식이기 때문에 @Select를 이용하면 원하는 클래스로 매핑까지 해준다.
  • 예제용 클래스를 만들어 올리고 싶지만 시간이 없기 때문에 일부분만 보여준다. 이 코드는 동작한다.단, 다른 DB는 확인하지 못했다.