-
-
안녕하세요? 오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보도록 하겠습니다.
JPQL 타입 표현
: 문자는 싱글쿼테이션 사용 : 숫자/불리언 타입은 자바와 동일 : enum은 패키지명을 포함해야한다. > 파라메터에 셋팅해서 사용 가능 : 엔티티 타입은, 상속관계에서 사용한다. |
타입 표현 | 예제 |
문자 | 'HELLO', 'She''s' |
숫자 | 10L(Long), 10D(Double), 10F(Float) |
Boolean | TRUE, FALSE |
ENUM | jpabook.MemberType.Admin (패키지명 포함) |
엔티티타입 | TYPE(m) = Member (상속 관계에서 사용) |
샘플코드)
String jpql = "SELECT e.컬럼, 'TEST', true FROM 엔티티 e"
+ "WHERE e.enum컬럼 = :생성Enum명"
+ "AND TYPE(e) = 상속엔티티타입명";
List<Object[]> result = em.createQuery(jpql)
.setParameter("생성Enum명", 엔티티.enum컬럼)
.getResultList();
System.out.println("result = " + result);
기타표현
: SQL과 문법과 동일 EXISTS, IN AND, OR, NOT =, >, >=, <, <=, <> BETWEEN, LIKE, IS NULL 등등 ... |
조건식 (CASE)
조건식에는
기본 CASE식과 단순 CASE식
COALESCE
NULLIF
가 존재합니다.
+
기본 CASE 식
SELECT
CASE WHEN 조건1 THEN 조건값1
WHEN 조건2 THEN 조건값2
ELSE 디폴트값
END
FROM 엔티티 e
+
단순 CASE 식
SELECT
CASE e.조건컬럼
WHEN 조건값1 THEN 결과값1
WHEN 조건값2 THEN 결과값2
ELSE 디폴트값
END
FROM 엔티티 e
+
COALESCE
> 하나씩 조회해서 null이 아니면 반환
SELECT
COALESCE(e.조건컬럼, 조건값) as 명칭
FROM 엔티티 e
+
NULLIF
> 두 값이 같으면 null 반환,
다르면 첫번째 값 반환
SELECT
NULLIF(e.조건컬럼, 조건값)
FROM 엔티티 e
기본함수
JPQL에서 지원하는 기본 함수에는,
CONCAT ( || 사용 가능)
SUBSTRING
TRIM
LOWER / UPPER
LENGTH
LOCATE
ABS, SQRT, MOD
SIZE, INDEX
등이 존재합니다.
그 외에, 사용자 정의 함수도 등록 사용 가능합니다.
※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.
https://logger-debug.tistory.com/entry/JPA-JPQL-%EA%B2%BD%EB%A1%9C-%ED%91%9C%ED%98%84%EC%8B%9D
오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
자바 AWS SES ( Amazon Simple Email Service ) 아마존 이메일 서비스 구현 ! (0) | 2024.10.25 |
---|---|
JPA 쿼리 JPQL 벌크 연산 (0) | 2024.10.24 |
JPA 쿼리 패치 조인 JPQL FETCH JOIN (0) | 2024.10.24 |
JPA JPQL 경로 표현식 (0) | 2024.10.23 |
JPA 쿼리 JPQL 페이징 조인 서브쿼리 (0) | 2024.10.18 |
JPA QueryDSL 네이티브SQL JDBC MyBatis (0) | 2024.10.18 |
JPA 지연로딩 즉시로딩 (0) | 2024.10.17 |
JPA 지연로딩 즉시로딩 프록시 proxy (0) | 2024.10.17 |