2017-06-13 8 views
0

私は自分のテーブルの履歴を保存する必要があります。私は実体がある場合たとえば、 は:休止状態 - 履歴を保存する

@Entity 
@EntityListener(AuditingEntityListener.class) 
public class Person { 
    @Id 
    @GeneartedValue(startegy = GenerationType.IDENTITY) 
    private Long id; 

    private String name; 

    @CreatedDate 
    @Temporal(TemporalType.DATE) 
    private Date createDate; 

    @LastModifiedDate 
    @Temporal(TemporalType.DATE) 
    private Date lastModifiedDate; 
} 

を私は、フィールドの人との新しいエンティティPersonH​​istoryを作成する必要があり、更新前の人PersonH​​istoryとして人の状態を保存しますか?

これは簡単ですか?

答えて

2

すべての変更を自分の人に保存する必要がありますか、それとも最後に保存したのか分かりますか?

人が最後の時間を変更されたときに、バージョン管理のいくつかの種類を必要とするかどうかを確認するために十分なit's場合は、多分あなたはHibernate Envers

を見てみる必要があり、あなたのアプローチは大丈夫です、私は思います。

あなたはこのように自分で履歴テーブルを作成することができます。

|ID | Field | changedate | before | after | 
+---+-------+------------+--------+---------+ 
| 1 | name | timestamp |Smith | Smithes | 

しかし、あなたは手でこれを行う前に、私はenversを好むだろう。