조건식(CASE 등등)
JPQL 작성 시 주의해야할 점!
String으로 작성하는 것이기 때문에 컴파일 오류로 잡아낼 수 없다! 그러므로 오타나 띄어쓰기에 매우 주의해야한다!
아래 코드가 정답코드인데, 마지막 String query에서 "from Member m " 쿼리는 공백문자를 포함한다! 공백문자가 나온다음에 "로 닫아주어야 한다!
String query = "select nullif(m.username, '관리자') as username " + "from Member m ";
자바의 switch-case와 비슷
기본 CASE 식 : 조건 넣을 수 있음.
select case when m.age <= 10 then '학생요금' when m.age >= 60 then '경로요금' else '일반요금' end from Member m
단순 CASE 식 : Exact Matching. 정확하게 매칭되야 함.
select case t.name when '팀A' then '인센티브110%' when '팀B' then '인센티브120%' else '인센티브105%' end from Team t

아래 함수들은 JPA에서 제공하는 표준 함수들이므로 어떤 DB들 간에 다 적용 가능하다.
COALESCE: 하나씩 조회해서 null이 아니면 반환
NULLIF : 두 값이 같으면 null 반환, 다르면 첫번째 값 반환


Last updated
Was this helpful?