인프런 커뮤니티 질문&답변
영속성 컨텍스트 질문입니다.
해결된 질문
작성
·
177
답변 1
1
김영한
지식공유자
다음을 확인해주세요.
1. member == member2 출력 결과가 true, false 중에 어떤 것인가요?
2. Member 객체에 혹시 @Data가 정의되어 있나요? 이 경우 assertEquals는 객체 참조가 아니라 데이터를 비교하게 됩니다. assertSame을 사용해보시겠어요?
3. member 객체가 DB에서 실제 조회가 되나요? 혹시 데이터가 없어서 null이 아닌가요?
katastrophe
질문자
아아 .. 다시 해보니 false나오고 Euqal 이나 Same도 통과안됩니다 !! 다른 객체 참조를 가르키고있네요! 그 전에 통과된 이유는 없는 값을 가르키고 있어서 그런것 같습니다..!
결론은 같은 Id값을 가지고 있는 객체라도 EntityManager에서 관리하는 객체가 아니게 된 순간
다른 참조값을 가져버리게 되는것이 맞는 것 같습니다.






제가 알기론 객체끼리의 ==연산자는 같은 참조일 경우 true 를 반환하는 것으로 알고있습니다.
assertEquals 로 테스트한 결과 또한 member 랑 member2랑 같다고 나왔습니다.