Posts [자바 ORM 표준 JPA 프로그래밍-기본편] JPQL 타입 표현과 기타식
Post
Cancel

[자바 ORM 표준 JPA 프로그래밍-기본편] JPQL 타입 표현과 기타식

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다.


JPQL 타입 표현

  • 문자: ‘HELLO’, ‘She’’s’
  • 숫자: 10L(Long), 10D(Double), 10F(Float)
  • Boolean: TRUE, FALSE
  • ENUM: jpabook.MemberType.Admin (패키지명 포함)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Team team = new Team();
team.setName("teamA");
em.persist(team);

Member member = new Member();
member.setUsername("teamA");
member.setAge(10);
member.setType(MemberType.ADMIN);
member.changeTeam(team);

em.persist(member);

em.flush();
em.clear();

String query = "select m.username, 'Hello', true from Member m " +
        "where m.type = jpql.MemberType.ADMIN";
List<Object[]> result = em.createQuery(query)
        .getResultList();

for (Object[] objects : result) {
    System.out.println("objects = " + objects[0]);
    System.out.println("objects = " + objects[1]);
    System.out.println("objects = " + objects[2]);
}

만약 ENUM을 하드코딩이 아닌 파라미터로 설정한다하면 패키지명이 불필요하다.

1
2
3
4
5
String query = "select m.username, 'Hello', true from Member m " +
        "where m.type = :userType";
List<Object[]> result = em.createQuery(query)
        .setParameter("userType", MemberType.ADMIN)
        .getResultList();
  • 엔티티 타입: TYPE(m) = Member (상속 관계에서 사용)
1
2
em.createQuery("select i from Item i where type(i) = Book ",Item.class)
        .getResultList();

JPQL 기타

기본적으로 표준 SQL은 다 지원한다고 보면 된다.

  • SQL과 문법이 같은 식
  • EXISTS, IN
  • AND, OR, NOT
  • =, >, >=, <, <=, <>
  • BETWEEN, LIKE, IS NULL
This post is licensed under CC BY 4.0 by the author.

[자바 ORM 표준 JPA 프로그래밍-기본편] 서브 쿼리

[자바 ORM 표준 JPA 프로그래밍-기본편] 조건식 (CASE 등등)