inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

Embedded type

복합 키와 equals(), hasgCode()

492

zpzp6271230209

56 asked

1

안녕하세요 영한님

책 261P 을 보다가 궁금점이 생겨서 질문드립니다.

1.영속성 컨텍스트는 엔티티의 식별자를 키로 사용해서 엔티티를  관리한다 .

2.그리고 식별자를 비교할 때 equals()와 hashCode()를 사용한다.....

따라서 복합 키는 equals와 hashCode를 필수로 구현해야한다.

1 , 2 내용은 복합 키가 아닐때에도 적용되지않나요 ?

왜' 복합 키' 일때만 필수로 구현을 해야할까요 ??

이 

JPA java

Answer 1

2

yh

안녕하세요. zpzp627123님

해당 내용은 ID 클래스에 equals, hashCode를 구현해야 한다는 뜻입니다.

이것을 구현하지 않으면 값이 같아도 equals에서 비교시 실패할 수 있습니다.

식별자가 다른 것 처럼 인식되는 큰 문제가 발생하는 것이지요.

복합 키가 아닌 Long 같은 일반 타입들은 내부에 equals, hashCode가 이미 구현되어서 값이 같으면 같음을 보장합니다.

감사합니다.

변경감지(더티체킹) 이후 플러시할 경우의 쿼리

0

37

1

단일 테이블 시 null 값과 연관관계 필요성 질문

0

44

1

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

71

2

inheritance startegy 선택시 고려사항

0

45

1

Entity 동등성 비교

0

51

1

실무 조언 관련 질문입니다.

0

74

1

H2데이터베이스 파일 생성

0

86

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

71

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

74

1

JPQL 메소드와 락

0

66

1

Delivery @OneToOne

0

80

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

115

2

UnsupportedOperationException 발생

0

116

3

H2 Database 연결이 안됩니다.

0

109

2

연관관계 매핑 질문드립니다.

0

108

2

h2데이터베이스 실행오류

0

126

2

persistence.xml

0

133

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

103

1

영속성 컨텍스트

0

86

1

JPA 프록시

0

113

1

Native Query와 MyBatis

0

91

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

109

1

임베디드 타입 예시 코드 관련 질문

0

140

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

108

3