인프런 커뮤니티 질문&답변

가보자!!님의 프로필 이미지
가보자!!

작성한 질문수

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

7강. Junit5으로 Spring Boot 테스트하기

안녕하세요!

작성

·

235

0

loanBook() 메소드를 보면 userLoanHistories에 값을 추가하기만 하는데 userLoanHistoryRepository에 값이 추가되어있습니다..이건 spring data jpa의 역할인 건가요??

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 가보자님!!! 좋은 질문 감사드립니다!! 🙂

 

아마 이 부분을 질문 주신 것 같아요!!! (혹시 다른 부분이 궁금하신거였다면, 편하게 또 질문 남겨주셔요~!! ㅎㅎㅎㅎ)

  • User.loanBook() 함수에서는 단순히 MutableList<UserLoanHistory> 에 새로운 UserLoanHistory를 추가만 해주는데~~~ (별도의 save 메소드를 호출하거나 하지 않고)

  • 도대체 어떻게! 그게 DB에 정말 저장이 되는가!!!

 

결론부터 말씀드리자면, cascade 옵션을 @OneToMany 어노테이션에 사용했기 때문입니다!

cascade 옵션은 연관관계에 놓인 JPA 객체들끼리 저장 / 삭제 등을 전파해주는 옵션으로써,
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]<34강. JPA 연관관계에 대한 추가적인 기능들>에서 찾아보실 수 있습니다!

 

혹시나, 블로그 등으로 자료를 찾아보고 싶으시다면, cascade 옵션 이라는 키워드로 구글링 해보시면 확인해보실 수 있습니다!

 

또 궁금한 점 있으시면 편하게 질문 남겨주세요!!

새해복 많이 받으세요 감사합니다!! 🙏🙏

가보자!!님의 프로필 이미지
가보자!!

작성한 질문수

질문하기