0
JPAのSpring Boot/Spring Dataでは、エンティティクラスを設定したいと思います。JPA:エンティティを履歴化するためのキーの設定方法
ビジネス要件は、1年に1回存在する文書の処理を履歴化することです。
処理はバルクで実行されるので、すべての文書は一緒に処理されます。processingTimestamp
が各処理シーケンスのデータベース内のすべての文書に対して存在します。
その後、最も最近処理されたドキュメントのみにアクセスしたいが、以前に処理したドキュメントは参照用に保管したい。
は、私は、次の選択肢を参照してください。
使用複合キー
@Id private String documentId; @Id private String yearOfDocumentCreation; @Id private java.sql.Timestamp processingTimestamp;
使用を自動的に生成されたキー
@Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String documentId; private String yearOfDocumentCreation private java.sql.Timestamp processingTimestamp;
/最高練習に関する
- 取り扱い(例:パフォーマンス
または私は他の選択肢/側面を欠場んが
ありがとうございました!しかし、既存の '(documentId、yearOfDocumentCreation、processingTimestamp)'の組み合わせは、同じ値の組み合わせを持つ新しいエントリが永続化されると自動的に置き換えられるのですか? – user7468395
同じユニークな制約を作成して、同じエントリを置き換えないようにすることができます。あなたがそれを置きたい場合は、3つの列がある場合は既存のエントリを見つけ、次に存在する場合は更新し、別の場合は新しいものを作成する必要があります。唯一の制約はインデックスであり、インデックスによって見つけ出すにはあまりにも高価ではありません。 –