3

参照データや構成データを含む多くの Hibernate エンティティに注釈を付けたいと考えています。

@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)

ただし、私の JUnit テストでは、Hibernate エンティティを使用して、この参照/構成データの一部を設定および破棄しています。テストのセットアップとティアダウン中にエンティティを読み書きできるが、本番コードでは読み取り専用にする推奨される方法はありますか?

理想的ではない回避策について、私の当面の考えは次の 2 つです。

  • NONSTRICT_READ_WRITE を使用していますが、隠れた欠点が何であるかはわかりません。
  • テスト コードでサブクラス化されたエンティティを作成して、読み取り専用のキャッシュ アノテーションをオーバーライドします。

これを処理する最もクリーンな方法に関する推奨事項はありますか?

(注: プロジェクトは Maven を使用します。)

4

1 に答える 1

0

私自身の質問に答える:

NON_STRICT_READ_WRITEを使用することは、READ_ONLYの利点のほとんどを備えているが、テストコードでエンティティを挿入および更新できる合理的なソリューションです。

古いテストデータを読み取っていないことを確認するために、テストのセットアップ中にキャッシュされたアイテムを削除することを忘れないでください。(例:evictQueries())。

于 2010-09-21T03:05:22.773 に答える