私のアプリケーションには、アプリケーションのライフサイクル全体を通して存続するオブジェクトのセットがあり、それらの履歴データベースを作成する必要があります。
これらのオブジェクトは、Hibernateアノテーションが付けられたJava / Scalaクラスの階層のインスタンスであり、アプリケーションで起動時にロードするために使用します。幸い、すべてのクラスにはすでにタイムスタンプが含まれています。つまり、履歴レコードを作成できるようにするためにオブジェクトモデルを変更する必要はありません。
最も適切なアプローチは何ですか:
アノテーションなしでHibernateを使用し、外部xmlマッピングを提供します。これは、主キー(以前の主キーとタイムスタンプで構成される複合キー)以外のアノテーションと同じです。
履歴レコードには他のクラスを使用します(単一のクラスではなくクラスの階層があるため、これは非常に複雑に聞こえます。また、レコードを再構築するために、すべてのタイプのレコードに対してHistoricalRecordClassをサブクラス化する必要があります)。引き続きHibernateを使用する
まったく異なるアプローチを使用してください(ORMSは好きではありません。それは単に利便性の問題です)
いくつかの考慮事項:
履歴レコードを保存する目的は、ユーザーが単一のGUIを介して、日付を指定するだけで、特定のデータのリアルタイム値または履歴値の両方にアクセスできるようにすることです。