나는 임베디드 클래스 ABC를 다른 임베디드 클래스 XYZ로부터 확장했다. ABC의 객체는 엔티티에 포함되어 있습니다. 엔티티에 해당하는 테이블에는 ABC의 요소 만 포함되고 XYZ는 포함하지 않습니다. 또한 그들을 갖기 위해 무엇을해야합니까?JPA에서 Embeddable 클래스 확장하기
Descriptor Customizer가 작동한다고 들었습니다. 어떻게해야합니까? 다른 방법이 있습니까?
나는 임베디드 클래스 ABC를 다른 임베디드 클래스 XYZ로부터 확장했다. ABC의 객체는 엔티티에 포함되어 있습니다. 엔티티에 해당하는 테이블에는 ABC의 요소 만 포함되고 XYZ는 포함하지 않습니다. 또한 그들을 갖기 위해 무엇을해야합니까?JPA에서 Embeddable 클래스 확장하기
Descriptor Customizer가 작동한다고 들었습니다. 어떻게해야합니까? 다른 방법이 있습니까?
XYZ의 DescriptorCustomizer에서 InheritancePolicy 클래스 인디케이터 필드를 설정해야합니다. 그런 다음 XYZ를 확장하는 ABC에 대한 집계 설명자를 정의해야합니다.이를 위해 SessionCustomizer가 필요할 수 있습니다.
This document of oracle javaEE 도움을 받으실 수 있습니다. 이에 따르면 InheritanceType.SINGLE_TABLE은 기본 전략입니다. 요구 사항에 따라 InheritanceType.TABLE_PER_CLASS가 필요할 수 있습니다.
이 내용은 Entity Inheritance Mapping Strategies
주제에 설명되어 있지만 'Embeddable'에서도 작동 할 수 있다고 생각합니다.
누군가이 DescriptorCustomizer를 작성하는 방법에 대한 예제를 제공 할 수 있습니까? XYZ 클래스에는 일련의 문자열과 uid가 있습니다. XYZ의 필드를 표시하는 ABC가 포함 된 개체를 가져올 수 없습니다. (내가 할 수 있었던 유일한 방법은 모든 XYZs 필드에 대해 ABC에 게터를 넣는 것입니다.)
오류가 발생하여 테이블에 필요한 열을 추가하십시오. ABC가 XYZ를 확장하면 XYZ이므로 XYZ의 모든 필드가 테이블에 필요합니다. 필요하지 않으면 ABC에서 XYZ를 확장해서는 안됩니다. –
ABC는 XYZ를 확장하는 유일한 클래스가 아닙니다 –
그래서? 내 요점은 남아있다. 다른 확장 클래스에 동일한 문제점이있는 경우 XYZ를 확장해서는 안됩니다. –