JPQL에서 엔티티를 직접 사용

PPakSSam·2022년 1월 26일
0
post-thumbnail
post-custom-banner

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

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";
List<Member> resultList = em.createQuery(jpql, Member.class)
                            .setParameter("member", member)
                            .getResultList();

// 실행된 SQL
select m.* from Member m where m.id = ?

엔티티 직접 사용 - 외래 키 값

Team team = em.find(Team.class, 1L);
String query = "select m from Member m where m.team = :team";
List<Member> resultList = em.createQuery(query, Member.class)
                            .setParameter("team", team)
                            .getResultList();

// 실행된 SQL
select m.* from Member m where m.team_id = ?
profile
성장에 대한 경험을 공유하고픈 자발적 경험주의자
post-custom-banner

0개의 댓글