Life Developer
인생 개발자
[JPA]JOIN

INNER JOIN (inner 생략가능)

 

Team team = new Team();
team.setName("teamA");
em.persist(team);

Member member = new Member();
member.setUsername("member1");
member.setAge(10);

member.setTeam(team);

em.persist(member);


em.flush();
em.clear();

String query = "select m from Member m join m.team t where t.name=:teamName";
List<Member> result = em.createQuery(query, Member.class)
.setParameter("teamName","teamA").getResultList();


System.out.println(" ======================================================= ");
tx.commit(); //이시점에 DB 쿼리가 날라감

 

 

 

 

LEFT OUTER JOIN(또는 RIGHT) (outer 생략가능 - 오라클과 같음)

 

String query = "select m from Member m left join m.team t where t.name=:teamName";
List<Member> result = em.createQuery(query, Member.class)
.setParameter("teamName","teamA").getResultList();

 

 

 

세타조인(크로스조인, 카티션 프로덕트, 막조인)

 

String query = "select m from Member m, Team t where m.username=t.name";
List<Member> result = em.createQuery(query, Member.class)
.getResultList();

 

System.out.println("result.size() = " + result.size());

'Developer' 카테고리의 다른 글

[JPA]조건식 - CASE  (0) 2020.09.21
[JPA]서브쿼리  (0) 2020.09.21
[JPA]페이징  (0) 2020.09.21
[JPA]프로젝션 - 어떻게 select를 할지  (0) 2020.09.21
[JPA]Native Query  (0) 2020.09.21
  Comments,     Trackbacks