내 구체적인 클래스는 다양한 방법을 상속되는 추상 슈퍼 클래스의 번호를 가지고에 주석을 추가 할 수 있습니다. 이러한 메소드 중 일부는 JPA 또는 JAXB 주석을 구체적인 클래스에 배치해야합니다. 현재 다음을 통해이 작업을 수행합니다.가장 좋은 방법은 상속 방법
방법을 재정의하지 않고이를 수행 할 방법이 있습니까? 로컬 주석을 제공하기위한 메서드 만 재정의하는 것은 낭비처럼 보입니다.
내 구체적인 클래스는 다양한 방법을 상속되는 추상 슈퍼 클래스의 번호를 가지고에 주석을 추가 할 수 있습니다. 이러한 메소드 중 일부는 JPA 또는 JAXB 주석을 구체적인 클래스에 배치해야합니다. 현재 다음을 통해이 작업을 수행합니다.가장 좋은 방법은 상속 방법
방법을 재정의하지 않고이를 수행 할 방법이 있습니까? 로컬 주석을 제공하기위한 메서드 만 재정의하는 것은 낭비처럼 보입니다.
불행하게도, 당신이 지금하고있는 것보다 더 나은 방법이 없습니다. 당신이 당신의 JPA 주석 콘크리트 클래스에 특정 정보가 필요합니다 것을 고려하여 메서드를 재정의해야합니다 묘사하는 일을합니다.
JPA 주석으로, 당신은 실제로 두 가지 옵션이 있습니다 - 당신은 방법을 주석을 달 수 있습니다, 또는 당신은 속성 주석을 달 수 있습니다. 우리의 프로젝트에 우리는 오히려 방법보다 속성을 주석으로 표준화했지만, 속성은 아마도 구체적인 클래스의 일부로서이, 하나 도움이되지 않습니다. (그들은 어떻게 든 슈퍼 클래스에 공유되는 경우에, 당신은 정말 방법에 주석을해야하고, 그들을 무시합니다).
스키마를 보지 않고서는 추천하기가 어렵지만 엔티티 클래스가 너무 많아 수퍼 클래스에서 많은 속성을 공유하는 경우 - 단순히 동일한 테이블에 저장하거나 차별화 된 유형 열?
또는 이 아니고 인 경우 각 콘크리트 클래스의 공통 속성을 재현해도 될까요? 수퍼 클래스에서 공통 속성을 포착하여 자신을 저장하는 대신 자신이 더 많은 작업을 할 수도 있습니다. 구체적인 클래스에서 개별적으로 주석을 달아야하기 때문에 구체적인 클래스에서 선언해야합니다. 이러한 속성과 상호 작용하는 일반적인 메서드가 필요한 경우 해당 함수를 캡처하는 별도의 유틸리티 클래스가 대답이 될 수 있습니다.
우리 프로젝트에서는 종종 엔티티에 공통의 수퍼 클래스를 사용하지만 엔티티에 대한 일부 메타 데이터를 캡처합니다. 이는 지속성 로직에 영향을주지 않습니다. 따라서 추상 클래스에서 JPA 주석을 사용할 필요가 없습니다 (의미가 없습니다).
응답을 통해 이렇게 생각해 주셔서 감사합니다. 제 경우 엔티티 클래스는 50 % 유사하고 50 %가 다릅니다 !! 성능을 위해 별도의 테이블을 계속 사용하고 위의 방법을 계속 사용합니다. 또한 일반적으로 접근 자 메서드에 주석을다는 경우가 종종 있습니다. – HDave
JPA에서 다른 테이블 이름을 사용하고 JAXB에서 요소 이름을 사용하기 때문에 구체적 하위 클래스에서 주석을 작성해야하는 이유가 추가되었다는 점을 추가하고 싶습니다. 이 경우의 수퍼 클래스도 일반적입니다. – HDave