모든 JPA 도메인 엔티티에 BaseDomain 클래스를 사용하고 싶습니다. 기본 클래스에서 UUID.random()에서 생성 된 String으로 저장된 객체 ID가 있습니다. 오브젝트 ID는 오브젝트 작성시 지정됩니다. 엔티티 클래스는 또한 유지 될 때 데이터베이스에 의해 할당 된 기본 키를 가지고 있습니다.JPA 엔티티에서 객체 ID로 제공되는 임의의 UUID를 처리 하시겠습니까?
이 시점까지는 항상 String 기반 개체 ID를 유지했습니다. 이렇게하면 각 테이블에 추가 열이 추가되지만 걱정하지 않아도됩니다.
궁금한데요 - 개체 ID (생성 된 UUID)를 유지할 이유가 있습니까? 또는 임의의 UUID가 Java 공간에 있어야합니까?
저는 항상 기본 키가 아닌 UUID에서 내 도메인 클래스 hashCode() 및 equals() 메소드를 기반으로합니다. 이것은 UUID가 JVM과 데이터베이스 모두에서 전체 엔티티에 대해 동일하게 유지되기 때문에 문제가되지 않습니다.
UUID의 지속을 중단하면 hashCode() 및 equals() 메소드는 어떻게 생겼을까요? 그것은 기본 키가 null 인 경우 객체 ID를 사용하여 null이 아닌 경우 기본 키를 먼저 사용하여 2 단계 비교와 같을까요?
UUID를 기본 키로 사용하지 않는 이유는 무엇입니까? –