• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

JPA 엔티티 동일성 보장 문제

22.07.13 19:35 작성 조회수 434

0

 
강의에서 나온 JPA 동일성 보장이 안되서 질문 올립니다.
 
강의에서 나온대로 테스트코드는 동일하게 짯는데요.
그냥 멤버 엔티티는 잘되는데 유저 엔티티는 동일성 보장이 안되서 여쭤봅니다.
무슨 다른 문제가 있을가요?
 
리파지토리는 JPA리파지토리 상속 인터페이스 구현으로 동일합니다.
 
org.opentest4j.AssertionFailedError 
위와 같은 에러가 뜹니다.

답변 4

·

답변을 작성해보세요.

1

안녕하세요. 2020 cloudfos님

테스트에서 @Transactional을 붙여주세요.

감사합니다.

안녕하세요. 김영한님 답변감사합니다.

테스트에서 @Transactional을 붙여주세요.

-> @Transactional 을 클래스에 다는거 아닌가요?

강의와 동일하게 테스트 했지만 제가 만든 엔티티는 동일성 보장이 안되서 질문을 드렸습니다.

 

혹시 동일성 보장이 안되는 조건이 따로 있는것은 아닌지요?

다시 여쭤봅니다.

테스트 클래스 전체 캡처 보내드립니다.

 

0

안녕하세요. 2020 cloudfos님

스프링 데이터 JPA를 사용했기 때문에 문제가 되었습니다.

EntityManager를 직접 사용하시면 동일성이 보장되는 것을 확인할 수 있습니다.

자세한 내용은 다음을 참고해주세요.

https://www.inflearn.com/questions/197446

감사합니다.

안녕하세요. 김영한님

링크 잘 확인 하였습니다.

Persistable 을 따로 공부해야 겠네요.

감사합니다.

0

안녕하세요. 김영한님

샘플 프로젝트 생성하여 테스트후 업로드 하여 전체 공개 해놨습니다. 

다운로드 주소는 아래와같습니다.

https://drive.google.com/file/d/1y-2Kbhk1isH42B8SAy6a2Tg_mT3amN6M/view?usp=sharing

 

프로젝트 간략히 설명드리면 일단 문제가 되는 엔티티 두개만 빼서 구성을 했구요.

Member 엔티티는 강의에서 테스트 했던 그대로 이구요

User 엔티티는 제가 만든 엔티티 입니다.

전체적인 프로젝트 폴더 구성은 아래 스샷과 같습니다.

압축을 풀고 테스트 실행해보시면 될거 같습니다.

감사합니다.

0

안녕하세요. 2020 cloudfos님

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.