JPA를 사용할 때 엔티티에 대해 hashCode()/equals()를 구현해야한다는 것을 읽었습니다. 예를 들어 Eclipse에는 클래스에 대한 메소드를 생성하는 좋은 기능이 있습니다.관련된 엔티티에 대한 hashCode() 메소드
그러나 어떤 필드를 선택해야합니까? 롱 아이디를 읽었습니다. 엔티티의 필드는 좋은 생각이 아닙니다. (right ?, why?) hashCode()/equals() 메소드에서 비즈니스 키 (엔티티를 식별하는 데 사용할 수있는 엔터티의 일부 필드)를 사용해야합니다.
A와 B 사이의 1 : n 관계 ... hashcode() 메서드에서 이러한 참조를 사용하는 것이 좋습니다. 이렇게하면 가끔 java.util.ConcurrentModificationException 또는 Stackoverflow 예외가 발생합니다. 콜렉션 변수는 어떻게됩니까? 나는 내 hashcode() 함수를 사용해서는 안된다고 생각합니다 ... 누군가가 내게 힌트를 줄 수 있습니까?
고맙습니다. :) 개체가 만들어 질 때 (그리고 데이터베이스에 유지되지 않을 때)이 필드가 null이 될 것이므로 ID 기본 키를 사용하면 안됩니다. 그래서 모든 새로운 객체는 다른 새로운 객체와 동일 할 것입니다. 문제는 : 엔티티에 고유 한 것으로 간주되는 대체 필드가없는 경우 어떻게해야합니까? 이드가 아니라면 어떤 필드를 사용해야합니까? – Moonlit
추상적으로, 두 개체가 어떻게 평등하다고 생각하십니까? 즉 DB를 사용하지 않아 ID가없는 경우 두 콩의 평등을 어떻게 정의할까요? 모든 분야를 점검하나요? 무슨 일이 일어나고 있는지 더 잘 이해할 수 있도록 질문에 객체의 구조를 게시해야하는 것처럼 보입니다. –