-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
질문이 있습니다!
21.01.05 21:20 작성 조회수 159
0
조인중, 세타조인과 연관관계가 없는 엔티티 조인은 같다 라고 생각해도 되나요?
예)
select m from Member m, Team t where m.name = t.name 이라는 세타 조인과,
select m from Member m join Team t on m.name = t.name 의 연관관계가 없는 엔티티 조인은 같은 건가요 ? ?
답변을 작성해보세요.
0
0
sjdzn119
질문자2021.01.07
이런! 간단하게 확인할 수 있는걸 확인 안하고 질문을 드렸네요 ㅠ_ㅠ
우선 Member 엔티티와 아무 연관없는 Test 라는 엔티티를 만들었고, select 쿼리 실행 전 Member 엔티티에
값을 하나 넣은 뒤 쿼리를 실행 시켰습니다.
Member member = new Member();
member.setUsername("둘리");
member.setAge(10000);
em.persist(member);
1. select m from Member m, Test t where m.username = t.name
>> 쿼리를 돌려보니 강의에서 말씀주신것과 동일하게 cross join 쿼리가 나갑니다.
2. select m from Member m left join Test t on m.username = t.name
>> left outer join 쿼리가 나갑니다.
차이점은 1번 cross join 은 Test 엔티티에 값이 없으면 쿼리 조회가 안되고,
2번 left outer join은 Test 엔티티에 값이 없어도, 조회가 됩니다.
혹시 더 중요한 부분을 놓치고 있다면 알려주세요
감사합니다.
0
김영한
지식공유자2021.01.05
안녕하세요. sjdzn119님
둘을 각각 실행해보시고 SQL 결과를 남겨주시겠어요^^?
그러면 둘의 차이를 바로 아실 수 있을거에요.
꼭 남겨주세요^^!
답변 3