객체지향 쿼리 언어 - JPQL 타입 표현과 기타식

도윤·2024년 3월 22일
post-thumbnail

JPQL 타입 표현과 기타식

JPQL 타입 표현

  • 문자 'HELLO', 문자 내 싱글 쿼테이션(')을 표시하고 싶을 경우 싱글 쿼테이션을 두 개 써주면 된다. -> 'She"s'
  • 숫자 : 10L(Long), 10D(Double), 10F(Float)
  • Boolean : TRUE, FALSE
  • ENUM : jpabook.MemberType.Admin(패키지명 포함)
  • 엔티티 타입 : TYPE(m) = Member(상속 관계에서 사용)

예제

String query = "select m.username, 'HELLO', TRUE from Member m";

위와 같이 쿼리를 만들면 각각의 값들이 잘 뽑혀나오는 걸 확인할 수 있다.

ENUM 타입은 실습을 위해 Member 와 관련된 ENUM 클래스를 생성한다.

Public enum MemberType {
ADMIN, USER
}

그리고 Member 클래스에 MemberType 을 가져온다.

@Enumerated(EnumType.STRING)
private MemberType type;

그리고 실행 클래스에서 member 객체에 MemberType 을 세팅해준다.

member.setType(MemberType.ADMIN);

그리고 쿼리를 아래와 같이 작성한다.

String query = "select m.username, 'HELLO', TRUE from Member m" + 
  					"where m.type = jpql.MemberType.ADMIN";

쿼리가 제대로 나가고, 값이 제대로 출력되면 조건에 맞는 값을 조회해 온거니 정상적으로 작동된 것이다.

만약 member 의 type 을 ADMIN이 아닌 USER 로 주면 List를 돌며 object[]의 값을 꺼내는 출력문지 보여지지 않을 것이다.
그런데 위의 방식은 패키지명을 적어야하는게 여간 귀찮은게 아니다. 대부분 실무에서는 위의 ㅂ아식보다는 그냥 파라미터 방식으로 빼서 사용한다.

JPQL 기타

  • SQL 과 문법이 같은식
  • EXISTS, IN
  • AND, OR, NOT
  • = , > , >= , <= , <>
  • BETWEEN, LIKE, IS NULL

참조 : 자바 ORM 표준 JPA 프로그래밍

profile
기록은 기억을 이긴다⭐

0개의 댓글