JPA/JPA 기본

43. JPA 타입 표현과 기타식

sdafdq 2023. 10. 31. 10:49
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