안녕하세요.
jpa에 있어서 한줄기 빛과 같은 강의를 너무 잘듣고 있습니다.
jpa에 입문한지 얼마 안되서 이것저것 삽질을 열심히 하는 와중에,
파생되는 식별자 관계에 대해 확인하다가 이해가 되지 않는 부분이 있어서 질문드립니다.
현재 spring data jpa로 진행중이며 간략한 엔티티 및 관계 정의는 아래와 같습니다.
Entity A [primary key A1, A2]
IdClassA [A1, A2]
Entity B [primary key A1, A2, B1] / ManyToOne 단방향 관계, fetch lazy
IdClassB [IdClassA, B1]
ex) BeforeAll로 A,B 더미 데이터를 저장
@Transactional
@Test
Brepository.findAll();
Brepository.findAll();
B Repository로 findall을 두번호출했을때 ( 다른 코드는 없습니다 )
identifier of an instance of B was altered from BIdClass@90c990a9 BIdClass@21b621d7 와 같이 예외가 발생했습니다. (키 값을 변경하려고 시도한적도 없습니다)
첫번째 호출했을때는 db에있는 값을 전체 다 가져오고
두번째 호출했을때는 같은 트랜잭션 안에서 진행하니 식별자를 기준으로 진행하는 것 같은데, 왜 주소값이 변경되었는지 잘모르겠습니다.
이와 관련해서 검색 컨셉을 잘못잡은것인지 모르겠지만, 검색해도 잘 안나오더라구요.
만약 findall을 두번 써야 하는 상황이라면, 어떻게 해결하는것이 좋을까요?
안녕하세요. KANG MIN SOO
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
https://bit.ly/3fX6ygx
주의: 업로드시 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.
추가로 자유주제로 질문을 올리셨는데, 질문으로 새로 업로드 부탁드립니다.
감사합니다.
답글