JPA [기본] JPQL 타입 표현, 조건식 (CASE)

신재원·2023년 2월 2일
0

JPA 기본

목록 보기
26/31

📌 JPQL 타입 표현

  1. 문자
    : 'HELLO', 'She"s'
  2. 숫자
    : 10L (Long), 10D (Double), 10F (Float)
  3. Boolean
    : TRUE, FALSE
  4. ENUM (조심해서 사용)
    EX) where m.type = jpql.MemberType.ADMIN
    : where 엔티티 = jpa.~~.타입명 (패키지명 포함)
  5. 엔티티 타입
    : TYPE(m) = Member (상속 관계에서 사용)

📌 조건식 - CASE 식

기본 CASE 식

"select" +
	"case when m.age <= 10 then '학생 요금'" +
    "	 when m.age >= 60 then '경로 요금'"  +
    "     else '일반 요금'"+
    "end" +
"from Member m";

단순 CASE 식

select
	case t.name
    	when '팀A' then '성과금 110%'
        when '팀B' then '성과금 120%'
        else '성과금 105%'
    end
from Team t

COALESCE
: 하나씩 조회해서 Null이 아니면 반환
ex) 사용자 이름이 없으면 "이름 없는 회원"을 반환
select coalesce (m.username, '이름 없는 회원') from Member m

NULLIF
: 두 값이 같으면 Null 반환, 다르면 첫번째 값 반환
ex) 사용자 이름이 '관리자면 Null을 반환하고, 나머지는 본인의 이름을 반환
select NULLIF (m.username, '관리자') from Member m

📌 JPQL 기본 함수

✔ JPQL이 제공하는 기본 함수들이다.

  • CONCAT (문자 더하기)
    SUBSTRING (문자열 자르기)
    TRIM (공백제거)
    LOWER, UPPER
    LENGTH
    LOCATE
    ABS, SQRT, MOD
    SIZE INDEX(JPA용도)
  • 사용자 정의 함수
    • 사용하는 DB 방언을 상속받고, 사용자 정의함수를 등록을 해야한다.

0개의 댓글