today'work
MyBatis @Insert의 결과 레코드를 직접 가져오기(PostgreSQL)
msna
2024. 10. 24. 21:00
개요
- 레코드를 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는 확인하지 못했다.