자바/JPA
[JPA] 영속성 컨텍스트가 같을 때의 엔티티의 비
OverTheHorizon3410
2023. 11. 19. 20:57
@Test
void transactionalEntityEqualsTest() {
Member member = new Member("테스트", null);
em.persist(member);
Member member1 = memberRepository.findById(member.getId())
.orElseThrow();
System.out.println("member1 = " + member1);
System.out.println("member1 == member = " + (member1 == member));
System.out.println("member1.equals(member) = " + member1.equals(member));
}
member1 = Member(id=3, name=테스트)
member1 == member = true
member1.equals(member) = true
- 엔티티 비교 결과
- 같은 트랜잭션 범위와 영속성 컨텍스트 안에서 저장한 엔티티와 조회된 엔티티가 같은 인스턴스이다.
- 일단 영속성 컨텍스트가 같은 경우 세 가지를 만족한다고 함.
- 동일성 비교
- 객체의 참조주소 비교
- 동등성 비교
equals
로서 비교가 같은지
- 데이터베이스의 동등성
@Id
로 지정된 DB의 식별자가 같은 경우
- 동일성 비교
Uploaded by N2T