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 |