Search
Duplicate
📒

[JPA 기본] 10-2. JPQL - 기본문법(2)

상태
완료
수업
JPA
주제
JPA
4 more properties
참고

JPQL타입 표현과 기타식

NOTE
문자 : “HELLO”, “SHE”
숫자: 10L(Long), 10D(Double), 10F(Float)
Boolean: TRUE, FALSE
ENUM: jpabook.MemberType.Admin(패키지명 포함)
select m.username, 'HELLO', true from Member m where m.type = jpql.MemberType.ADMIN
SQL
복사
엔티티 타입: TYPE(m)= Member(상속 관계에서 사용)
em.createQuery("select i from Item i where type(i) = Book", Item.class);
SQL
복사

조건식(CASE 등등)

NOTE

기본 CASE 식

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

단순 CASE 식

select case t.name when '팀A' then '인센티브 110%' when '팀B' then '인센티브 120%' else '인센티브 105%' end from Team t
SQL
복사
COALESCE: 하나씩 조회해서 null이 아니면 반환
select coalesce(m.username, '이름 없는 회원') from Member m;
SQL
복사
NULLIF: 두 값이 같으면 null 반환, 다르면 첫번째 값 반환
select NULLIF(m.username, '관리자') from Member ;
SQL
복사

JPQL 함수

NOTE
//- CONCAT select concat('a','b'); //ab //- SUBSTRING: firstParam의 값을 secondParam위치부터 thirdParam갯수만큼 잘라서 반환 select substring('abcd', 2,3) // bc //- TRIM select trim(' lee han sol ')//lee han sol //- LOWER, UPPER select LOWER('hansolHI');//hansolhi select UPPER('hansolHI');//HANSOLHI //- LENGTH select LENGTH('hansolHI'); // 6 //- LOCATE select LOCATE('so', 'hansol');//4 //- ABS, SQRT, MOD select ABS(-30);// 30 select SQRT(4);//2 select MOD(4,2);//0 //- SIZE, INDEX(JPA용도) select SIZE(t.members) from Team t // 0
SQL
복사
CONCAT
SUBSTRING
TRIM
LOWER, UPPER
LENGTH
LOCATE
ABS, SQRT, MOD
SIZE INDEX(JPA용도)