次の構造を持つHibernateエンティティが1つあります。
@Entity
public class A
{
private Integer id;
private String name;
@OneToMany
private List<B> bList;
}
@Entity
public class B
{
private Integer id;
@OneToMany
private List<C> cList;
}
次に、エンティティ「A」の履歴を次のような情報で維持したいと思います。
historyDate | fieldsChanged | updatedBy | createdBy
列にはfieldsChanged
、エンティティAの列の名前と、エンティティBまたはCに変更が適用されているかどうかが必要です。
今、私はグーグルで検索し、これらを達成するための次の方法のいくつかを見つけました:
- DBでのライタートリガー
- 履歴テーブルを維持するための独自のJavaロジック
- HibernateEnversの使用
今、私は上から、または他の何かからのより良いアプローチが何であるかわかりません。
任意の提案をいただければ幸いです...