> Java > java지도 시간 > ID를 손상시키지 않고 JPA 엔터티에 대해 hashCode() 및 equals()를 구현하는 방법은 무엇입니까?

ID를 손상시키지 않고 JPA 엔터티에 대해 hashCode() 및 equals()를 구현하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-26 04:05:07
원래의
672명이 탐색했습니다.

How to Implement hashCode() and equals() for JPA Entities Without Breaking Identity?

JPA hashCode()/equals() 딜레마: JPA 중립적 관점

JPA용 hashCode() 및 equals() 구현 엔터티는 특히 계약 준수 및 신원 탐지와 관련하여 여러 가지 문제를 제기할 수 있습니다. JPA 구현 중립적 관점(특히 EclipseLink를 염두에 두고)에서 문제를 논의하면서 이 기사에서는 사용 가능한 옵션과 그 의미를 살펴봅니다.

절충점이 있는 가능한 구현

  1. Object.hashCode() 및 Object.equals(): 이 기본 구현은 계약 준수를 보장하지만 동일한 객체를 식별하지 못하고 분리된 엔터티에 문제를 일으킬 수 있습니다.
  2. 기본 키별 hashCode()/equals(): hashCode()/를 준수합니다. =equals() 계약이지만 임시 기본 키로 인해 분리된 엔터티의 ID가 손상됩니다. value.
  3. hashCode()/equals() by Business-Id: 올바른 ID를 제공하지만 여전히 계약을 위반하고 외래 키 관련 문제를 일으킬 수 있습니다.

질문 및 건의사항

질문 1: 간과된 옵션이나 장단점이 있습니까?

답변: "Don't Let Hibernate Steal Your Identity"라는 기사에서는 작업 중에 개체 ID를 할당하는 것을 제안합니다. 인스턴스화는 객체 식별을 단순화하고 코드 복잡성을 줄입니다.

질문 2: 어떤 옵션이 권장됩니까?

답변: 기사에서 제안된 솔루션은 JPA 구현에 의존하기보다는 인스턴스화 시 객체 ID를 할당하는 것을 권장합니다. 이 접근 방식은 일관성을 보장하고 ID 관리를 단순화합니다.

위 내용은 ID를 손상시키지 않고 JPA 엔터티에 대해 hashCode() 및 equals()를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿