ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 엔티티를 직접 사용하기
    JPA/JPQL 2023. 8. 9. 14:30

    JQPL에서는 기본 SQL과 다르게 엔티티를 직접 넘길 수 있다. JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기본 키 값을 사용한다.

     

     

    엔티티 직접 사용 - 기본 키 값

     

    [JPQL]

    select count(m.id) from Member m   // 엔티티의 아이디를 사용

    select count(m) from Member m       // 엔티티를 직접 사용

     

    [SQL] (JPQL 둘 다 같은 SQL로 실행됨)

    select count(m.id) as cnt from Member m

     

     

    엔티티를 파라미터로 전달

    String jpql = "select m from Member m where m = :member";
    Member findMember = em.createQuery(jpql, Member.class)
                .setParameter("member", member)
                .getSingleResult();

     

    식별자를 직접 전달

    String jpql = "select m from Member m where m.id = :memberId";
    Member findMember = em.createQuery(jpql, Member.class)
                .setParameter("memberId", member.getId())
                .getSingleResult();

     

     

     

     

    외래 키 값을 사용

    String jpql = "select m from Member m where m.team = :team";
    List<Member> members = em.createQuery(jpql)
                .setParameter("team", teamA)
                .getResultList();

    m.team은 db 입장에서 외래키이기 때문에 위의 에제처럼 식별자로 사용할 수 있다.

    'JPA > JPQL' 카테고리의 다른 글

    벌크 연산  (0) 2023.08.09
    Named 쿼리  (0) 2023.08.09
    페치 조인의 한계  (0) 2023.08.09
    페치 조인(fetch join)  (0) 2023.08.09
    경로 표현식  (0) 2023.08.09
Designed by Tistory.