강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của sjdzn1192623
sjdzn1192623

câu hỏi đã được viết

Lập trình JPA tiêu chuẩn Java ORM - Cơ bản

Ghép

질문이 있습니다!

Đã giải quyết

Viết

·

283

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 의 연관관계가 없는 엔티티 조인은 같은 건가요 ? ?

JPAjava

Câu trả lời 3

0

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

네 핵심은 두번째 방법을 사용하면 left join을 할 수 있습니다^^

감사합니다.

0

sjdzn119님의 프로필 이미지
sjdzn119
Người đặt câu hỏi

이런! 간단하게 확인할 수 있는걸 확인 안하고 질문을 드렸네요 ㅠ_ㅠ

우선 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

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

안녕하세요. sjdzn119님

둘을 각각 실행해보시고 SQL 결과를 남겨주시겠어요^^?

그러면 둘의 차이를 바로 아실 수 있을거에요.

꼭 남겨주세요^^!

Hình ảnh hồ sơ của sjdzn1192623
sjdzn1192623

câu hỏi đã được viết

Đặt câu hỏi