SpringDataJPA/Hibernate
を使用して@Id
世代の同じカスタムIdentifierGenerator
を使用する多くのエンティティが私のプロジェクトにあります。同じカスタムIDジェネレータを使用して複数のエンティティの@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
declerationを繰り返したくはありません。内部に醜いハードコーディングされたフルクラス名を含むこの注釈を隠す方法はありませんか?
ポストscriptum
私は以前id
フィールドを含むBaseEntity
クラスに@MappedSuperClass
を利用し、私は、このようなスーパークラスを利用放棄しなければならなかったいくつかの技術的な理由によるものでした。明らかに、この質問に対する最も簡単な解決策です。
私は以前これを利用して、そしてこれはより良い解決策ですが、私の要件ということが正しいですそのようなスーパークラスを使わないように私に強いられました。私は質問を修正しましたが、あなたの答えはより広い範囲でこの質問に対して適切です。 –