2

次のようなドキュメントを表すエンティティがあります。

文書作成日_作成doc_number doc_origin

ドキュメントは通常'2012/XY/005'と呼ばれます。これは XY によって作成された 2012 年の 5 番目のドキュメントです。そのため、番号は作成された年と同じ起源に対して一意である必要があり、制約を設ける必要があります。

JPAを使用してこれをモデル化およびマッピングする最良の方法は何ですか?

私のオプションは次のとおりです。

オプション 1:別のフィールドに作成日のドキュメント エンティティを配置し、一意にします (年、doc_number、doc_origin)

オプション 2:フィールド doc_ref を作成し、'YEAR/ORIG/NUMBER' のような文字列を入れて一意にする (doc_ref)

どちらのオプションも年を複製する別のフィールドを追加しますが、オプション 1 ではフィールド year を date_creation と一貫して更新する必要があり、オプション 2 ではフィールド doc_ref を他のフィールドと一貫して更新する必要があるため、オプション 1 が最適であると考える傾向があります。

表示されていない別のオプションはありますか? ありがとう!

4

1 に答える 1

0

データベースで許可されている場合は、関数ベースの一意のインデックスを使用できます。Oracle での例:

CREATE UNIQUE INDEX YEAR_ORIGIN_NUMBER_IDX 
on DOCUMENT (TRUNC(DT_CREATION, 'YEAR'), DOC_ORIGIN, DOC_NUMBER)
于 2012-04-13T14:01:32.973 に答える