연관관계가 없는 도메인끼리 join 하는 쿼리가 필요한경우
2254
작성한 질문수 14
안녕하세요. 질문이 있어서 글남깁니다..
JPA 는 객체간 연관관계 매핑으로 객체관점에서는 연관관계에 있는 데이터들을 쉽게 가져올 수 있잖아요..
근데 만약에 연관관계는 없는 도메인끼리 join을 해서 (연관관계가 없기 때문에 null 데이터가 포함될수있겠죠?) 가져오는 데이터가 필요하다면..
left outer join , inner join 등등..
그리고 쿼리 결과를 기존 도메인 객체가 아닌 새로운 DTO 객체로 리턴해야 하는경우...
(연관관계가 없기 때문에 새로운 DTO 로 결과 반환을 해야겠죠..)
실무에서 이런 경우가 있을 수 있거든요.. AS-IS 시스템을 JPA 로 변경하는 과정이라면..
이런경우에는 어떻게 처리를 하시나요?
QueryDSL 을 사용하시나요? JPQL 을 사용하시나요?
실무에서의 경험이 없는 상태에서 적용하려니 어려운점이 많네요 ^^;;
답변 1
1
안녕하세요. 윤지상님^^
연관관계가 없어도 join이 가능합니다. left outer join, inner join 등등 일반적인 SQL에서 지원하는 모든 방식의 조인이 가능합니다. 이 부분에 대한 자세한 내용은 기본편 객체지향 쿼리 언어 부분을 보시면 도움이 되실꺼에요.
그리고 엔티티 대신에 DTO로 바로 조회하는 것도 당연히 가능합니다. 어떤 경우 엔티티로 조회하고 어떤 경우는 DTO로 바로 조회하는게 좋은지 성능까지 고려해서 설명드리는 내용이 바로 활용2편 입니다.
그리고 Querydsl은 JPQL 빌더 역할을 하는 것이기 때문에 결국 JPQL을 잘 알아야 Querydsl도 잘 사용할 수 있습니다^^
저는 실무에서 가급적 JPQL을 직접 사용하는 것 보다는 Querydsl을 사용하는 것을 더 권장합니다.
더 궁금한 내용은 언제든지 편하게 질문주세요^^
sdk 설정 오류
0
50
2
오탈자 - @Transactional
0
55
1
src/test/resources 테스트 경로 문제
0
50
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
64
1
MemberRepositoryTest 실행오류
0
81
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
183
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
138
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
51
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
71
1
기본 생성자
0
60
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
100
1
멤버서비스테스트 부분에서 막힙니다.
0
164
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
116
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
118
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
113
1
24분 27초 연관관계 편의 메서드 위치
0
113
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
108
2
빌드 툴, Gradle
0
59
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
76
2
Repository에서 EntityManager 주입 방식 차이
0
88
1
롬복과 사용자 정의 setter 메서드
0
71
1
주문 목록 조회 fetch join 질문드립니다
0
81
1
dirty checking 질문드립니다.
0
81
1
동시성 관련 질문입니다
0
74
1





