SpringDataJPA/Hibernate
을 사용하여 @Id
세대에 동일한 사용자 정의 IdentifierGenerator
을 사용하는 많은 엔티티가 있습니다.동일한 Custom ID Generator를 사용하여 여러 엔터티에 대해 @GenericGenerator 선언을 통합하는 방법은 무엇입니까?
예시 엔티티.
@Entity
@Table(name = "CHAIRS")
public class ChairEntity {
@Id
@GeneratedValue(generator = "myGenerator")
@GenericGenerator(strategy = "a.b.jpa.generator.MyGenerator", name = "myGenerator")
protected String id;
// rest of the entity
}
그러나 모든 엔터티의 모든 ID 필드에 대해 @GenericGenerator
복호화를 반복하고 싶지는 않습니다. 못생긴 하드 코드 된 전체 클래스 이름이 포함 된이 주석을 숨길 방법이 없습니까?
포스트 scriptum
내가 이전에 id
필드를 포함하는 BaseEntity
클래스와 @MappedSuperClass
을 사용했지만, 때문에 몇 가지 기술적 인 이유로 나는 그런 슈퍼 클래스를 활용 포기했다. 분명히이 질문에 대한 가장 쉬운 해결책입니다. 내가 생각 해낸
, 그리고 더 나은 해결책이 정확하지만 내 요구 사항 그런 슈퍼 클래스를 사용하지 않게했습니다. 나는이 질문을 수정했다. 그러나이 질문에 대한 대답은 더 넓은 범위에서 적절하다. –