본문 바로가기

JPA

2월13일 JPA JPQL 조인

JPQL 조인

내부조인

select m from Member m [Inner] Join m.team t

 

외부조인

select m from Member m left[outer] join m.team t

 

세타 조인

select count(m) from Member m , Team t where  m.username = t.name

정말 연관관계가 없는 엔티티 둘을 조인한다.

sql과의 차이점은 엔티티를 중심으로 쿼리가 작성된다는것.

ex)

member와 team 을 join 이때 다대일 관계에 fetch = FetchType.LAZY를 없애준다.

 

Team team = new Team();

em.persist(team);

 

Member member = new Member();

member.setTeam(team);

em.persist(member); // cascade조약으로 team도 영속성이 된다.

 

String query =

"select m from Member m inner join m.team t";

"select m from Member m left outer join m.team t"

 

막(전부 교차 , 세타) join , join 할 엔티티를 전부 명시

"select m from Member m , Team t where m.username = T.name"

from절에 없는 엔티티와 join하는걸 그렇게 말한다.

아무거나 막 써서 조인시킨다는 의미