em.createQuery("select i from Item i where type(i) = Book", Item.class)
.getResultList();
문자 : '헬로'
숫자 : 10L(Long), 10D, 10F, 10 등 앞에 DF는 더블, 플로트
Boolean : true, false
enum : 패키지명 다 포함해서 넣어야 함. jpashop(패키지명).MemberType(enum클래스).Admin(enum 값) jpashop.MemberType.Admin
엔티티 : type(별칭) -> select i from Item i where type(i) = Book 이렇게 하면 DTYPE 보고 찾아 줌. 상속관계. Book 이렇게 엔티티 그자체? 엔티티 다 JPQL에서 인지하니까.. 그냥 엔티티 쓰면 됨.
List<Object[]> result = em.createQuery("select m.username, 'hello', true from Member m ", Object[].class)
.getResultList();
for (Object[] objects : result) {
for (Object object : objects) {
System.out.println("object = " + object);
}
}
저렇게 'hello', true 등의 타입
Member member = new Member();
member.setUsername("memberA");
member.setType(MemberType.ADMIN);
em.persist(member);
em.flush();
em.clear();
List<Member> result = em.createQuery("select m from Member m where m.type = hellojpa.MemberType.ADMIN", Member.class)
.getResultList();
이렇게 enum 타입
em.createQuery("select i from Item i where type(i) = Book", Item.class)
.getResultList();
이렇게 엔티티타입
JPQL은 SQL과 뭐 거의 같다고 보면됨.
exists, in
and, or, not
비교연산,
between, like, is null
sql 생각하면서 쓰면 됨. 근데 다루는 데이터는 객체라고 생각하고.
'JPA > JPA 기본' 카테고리의 다른 글
45. JPQL 함수 (0) | 2023.10.31 |
---|---|
44. 조건식. case 등등 (0) | 2023.10.31 |
42. 서브쿼리 (0) | 2023.10.31 |
41. 조인 (0) | 2023.10.31 |
40. 페이징 (0) | 2023.10.31 |