사용자에게 데이터를 받을 때 DTO의 필드에 ENUM이 존재하는 경우가 있다. ENUM을 이용해 동적쿼리를 작성하는 방법을 알아보자.
자동차를 갖고 있다면 자동차 종류를 ENUM으로 사용해 관련된 쿼리를 작성하고 싶을 수 있다.
Mapper.java
List<MyCar> selectCars(Car car);
Car가 Enum이다.
Car.java
public enum Car {
truck, racing, sport;
}
Mapper.xml
<choose>
<when test="car == null">
...
</when>
<when test="car.name().equals('truck')">
...
</when>
<when test="searchKey.name().equals('sport')">
...
</when>
<otherwise>
...
</otherwise>
</choose>
이런식으로 하면 된다.
쌍따옴표와 따옴표는 서로 위치가 바뀌어도 상관없다. name 대신 toString을 사용해도 된다.
ENUM은
참고
https://stackoverflow.com/questions/12933813/using-enum-parameters-in-mybatis-dynamic-sql
'스프링부트 관련(spring boot, mybatis)' 카테고리의 다른 글
[Spring Boot] OAuth 카카오 연동 인증과 로그인 (with next.js) (0) | 2024.10.05 |
---|---|
[spring boot] post request에 DTO 사용할때 데이터 넣어도 null 발생 (0) | 2024.05.05 |
Mybatis에서 Pageable 사용하기 (0) | 2024.02.04 |
Mybatis 동적 쿼리, #{}과 ${}의 차이 (1) | 2024.02.04 |
bindingResult 가 무엇일까? (feat. Valid) (0) | 2024.02.01 |