작성
·
210
0
안녕하세요.
MemberRepositoryTest 시에
List<Member> all = memberRepository.findAll(); 에서
save the transient instance before flushing 에러가 발생을 하는데요.
인터넷에서 찾아보니 casecade 옵션을 넣어야 한다고 하는데 강의하신 소스와 자료와는 차이가 없는데요.
Member 엔티티의 Team 엔티티와의 @ManyToOne 에 casecade 를 적용하니 오류는 해결이 되었습니다.
혹시 이유를 알 수 있을까요?
답변 1
1
안녕하세요. JH K님
JPA의 모든 엔티티는 영속 상태일 때만 연관관계를 맺을 수 있습니다.
아마 중간에 em.persist(member)가 없거나, 또는 em.persist(team) 코드가 빠진 것 같습니다.
한번 살펴보세요^^
(혹시 그래도 안보이면, 전체 테스트 코드를 올려주세요.)
cascade는 강제로 연관된 엔티티들을 영속 상태로 만들어버리는 옵션입니다.
이 옵션은 어느정도 위험성이 있어서 명확하게 이해하고 사용해야 하는데, JPA 기본편에서 자세히 설명해드립니다^^
감사합니다.