안녕하세요 data jpa를 사용했을 때 질문드립니다.
208
작성한 질문수 49
영한님 오랜만입니다! 안녕하세요 ㅎㅎ api 부분을 다시 공부하는데 이것을 querydsl 하고 data jpa로 하고 있는 과정에서 질문 드립니다.
제가 Club 이라는 엔티티를 clubRepository.findAll() 이라는 datajpa 메서드를 통해서 list로 가져왔습니다.
Club 안에는 club_name, 과 같은 일반적인 필드가 있고, OneToMany로 엮여져 있는 List<Member> members와 List<Sponsor> sponsors가 있습니다.
findAll 을 사용했을 때에 member와 sponsor 엔티티에 jsonignore를 걸어주지 않았기 때문에 무한루프에 빠질 줄 알았는데 빠지지 않았길레 query문을 확인해보았더니 이 둘을 아예 뽑지를 않고 club_name만 뽑는 것을 확인했습니다.
여기서 의문점이 생겼습니다.
1. 원래 data jpa 기본으로 세팅되어있는 메서드는 OneToMany가 걸려있는 필드는 아예 가져오지 않는건가요 ?? 제가 그냥 따로 custom으로 querydsl을 짜는 것이 더 현명한 방법일까요 ?? 궁금합니다!!
답변 3
1
안녕하세요. kangsy763님^^ 저도 오랜만입니다.
먼저 OneToMany 관계는 기본 설정이 지연로딩입니다. 따라서
Club -> Members, Club -> Sponsor 모두 지연로딩입니다.
그래서 Query문에서는 club_name만 뽑게 됩니다.
이것은 JPA 기본 동작 방식입니다^^!
그리고 지연로딩이니까 실제 해당 엔티티를 사용하는 순간 로딩되겠지요?
추가로 jsonIgnore는 컨트롤러에서 API, json으로 반환할 때 동작합니다.
도움이 되셨길 바래요^^
강의 관련 외 질문입니다.
0
65
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
86
1
BeanCreationException
0
86
3
Update 후 UpdateMemberResponse 매핑할 때
0
46
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
98
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
81
1
루트 쿼리라는것은
0
58
1
메서드를 분리하는 기준
0
62
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
108
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
83
2
fetch join과 영속화와 OSIV의 관계
0
84
2
Distinct 사용 전 결과에 대한 의문
0
113
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
55
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
77
2
dto 필드 속 엔티티 여부
0
58
1
뷰템플릿 사용 시
0
76
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
85
1
DTO 대신 Form 사용은 안되나요?
0
133
1
OSIV ON 상태일 때
0
95
1
fetch join VS fetch join 페이징 궁금증
0
179
2
양방향 연관관계 알아보는 법?
0
104
1
16강 17강 간단 정리 이게 맞을까요 ?
0
165
2





