Posts [자바 ORM 표준 JPA 프로그래밍-기본편] 엔티티 직접 사용
Post
Cancel

[자바 ORM 표준 JPA 프로그래밍-기본편] 엔티티 직접 사용

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


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

  • JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기본 키 값을 사용
  • [JPQL]
1
2
select count(m.id) from Member m //엔티티의 아이디를 사용
select count(m) from Member m //엔티티를 직접 사용
  • [SQL](JPQL 둘다 같은 다음 SQL 실행)
1
select count(m.id) as cnt from Member m
  • 엔티티를 파라미터로 전달
1
2
3
4
String jpql = “select m from Member m where m = :member”;
List resultList = em.createQuery(jpql)
                    .setParameter("member", member)
                    .getResultList();
  • 식별자를 직접 전달
1
2
3
4
String jpql = “select m from Member m where m.id = :memberId”;
List resultList = em.createQuery(jpql)
                    .setParameter("memberId", memberId)
                    .getResultList();
  • 두 방법 다 동일하게 실행된 SQL
1
select m.* from Member m where m.id=?

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

1
2
3
4
5
Team team = em.find(Team.class, 1L);
String qlString = “select m from Member m where m.team = :team”;
List resultList = em.createQuery(qlString)
                    .setParameter("team", team)
                    .getResultList();
1
2
3
4
String qlString = “select m from Member m where m.team.id = :teamId”;
List resultList = em.createQuery(qlString)
                    .setParameter("teamId", teamId)
                    .getResultList();
  • 둘 다 동일하게 실행된 SQL
1
select m.* from Member m where m.team_id=?
This post is licensed under CC BY 4.0 by the author.

[자바 ORM 표준 JPA 프로그래밍-기본편] 다형성 쿼리

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