2017-08-07 5 views
0

私は、PersonとPersonSnapshotという2つのエンティティを持っています。 PersonSnapshotはPersonと同じですが、独自の主キーがあります。新しいJPAエンティティのスナップショットを新しい主キー列で新しいテーブルに保存する方法

プロパティ名を再定義する必要がないようにJavaクラス階層を使用したいと思いますが、2つのテーブルに異なる "@Id"プロパティがあるため、それらを動作させることができません。

@Entity 
    @Table(name = "Person") 
    @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 
    class Person { 
     @Id 
     private int id; 
     @name 
     private String name; 
    } 

私は3つのクラスで終わるだろうと一般的な属性の抽象MappedSuperClassを作成したくない

@Entity 
@Table(name = "Person_Snapshot") 
class PersonSnapshot extends Person { 
    @Id 
    private int snapShotId; 
} 

のようにそのスナップショットを保存する必要があります。これらの2つのクラスだけで同じ結果を達成する方法はありますか?

+0

Personの変更ごとにスナップショットを作成しようとしていますか?もしそうなら、Hibernate Enversがあなたのために仕事をするかもしれません。 –

+0

私は3つのクラスを作成しました。少なくともコードは少し保守性があります。 – DBS

答えて

関連する問題