연관관계 관련 질문 있습니다.
86
작성한 질문수 1
public void returnBook(String bookName) {
UserLoanHistory targetHistory = this.userLoanHistories.stream()
.filter(history -> history.getBookName().equals(bookName))
.findFirst()
.orElseThrow(IllegalArgumentException::new);
targetHistory.doReturn();리팩토링 강의에서 repository 사용없이 this.userLoanHistories.stream()로 바로 데이터를 불러오던데 mappedBy로 연관관계가 존재하면 가능한건가요?
답변 2
1
안녕하세요 준박님! 🙂 네네 맞습니다!
@OneToMany / @ManyToOne 같은 연관관계가 존재하면 연결된 테이블의 데이터를 repository를 사용하지 않고도 바로 불러올 수 있습니다. 굉장히 편하기도 하고 조금 더 객체 지향적인 프로그래밍을 할 수 있도록 해주죠.
다만, 연관관계가 항상 좋은 것은 아닙니다.
관련해서
를 참고해보셔도 좋을 것 같습니다.
또 궁금한 점 있으시면 편하게 질문 주세요~!! 감사합니다. 🙇
1
안녕하세요, 인프런 AI 인턴입니다. 성준박님 질문에 감사드립니다.
연관 관계가 있는 엔티티에서 this.userLoanHistories.stream()을 사용하여 데이터를 직접 조회하는 것은, userLoanHistories가 JPA 엔티티의 컬렉션으로 매핑되어 있을 때 가능합니다. 이를 위해서는 mappedBy 속성을 사용하여 연관 관계가 구조적으로 설정되어 있어야 합니다. 이렇게 하면 JPA 프레임워크가 관련 엔티티들을 자동으로 가져와 메모리에 로드하게 되며, 이들 컬렉션에 대해 스트림을 사용할 수 있습니다.
즉, UserLoanHistory와 User가 One-to-Many 관계로 설정되어 있고 mappedBy 속성을 통해 관계가 설정되어 있는 경우, userLoanHistories는 해당 User 객체에 속한 UserLoanHistory들의 컬렉션을 의미하게 됩니다. 따라서 이러한 구조를 이용하면 특정 조건의 UserLoanHistory를 스트림 연산을 통해 쉽게 탐색할 수 있습니다.
관련 질문과 답변들을 확인해보시면 보다 구체적인 이해에 도움이 될 수 있습니다:
“반납 기능 관련해서 질문드립니다.”: 반납 기능 구현 시 중복 반납 문제와 해결 방안에 대해 논의되었습니다.
“returnBookTest 질문드립니다.”: 연관 관계가 잘못 설정됐을 경우의 문제와 해결 방법에 대해 다뤘습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
패키지 구분에 대해 궁금한게 있습니다
0
29
2
리액트 관련 질문이 있습니다.
0
67
2
스프링부트 버전
0
83
2
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
0
64
2
33강. UserLoanHistory의 관계성에 대한 질문
1
57
2
Java JDK 버전 문의의 건
0
142
2
ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.
0
92
3
h2 console 접속했을 테이블 질문
1
70
1
ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨
0
83
2
15강. updateUser() 질문
0
57
2
깃허브 질
0
90
2
여기까지 다 끝냈다고 하셨는데
0
83
2
왜안될까요
0
73
2
MySQL 창이안ㄴ뜹니다
0
59
2
포스트맨
0
55
1
spring 개념적인 질문
0
73
2
인텔리제이 샘플코드 실행 안됨 오류
0
150
2
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
0
90
1
마이그레이션 오류입니다.
0
179
3
Whitelabel Error Page 오류가 났습니다.
0
181
2
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
1
99
3
궁금한게 있습니다.
0
64
2
DTO 관련
0
73
2
궁금한게 있습니다!
0
73
2





