1

ご存知のように、後続のクエリで使用されるエンティティに Hibernate キャッシュを使用できます。私の質問は、そのようなキャッシュされたエンティティは、そのようにキャッシュに入れた後、変更に対して不変ですか?

a) DB からエンティティをロードする

b) 注釈がキャッシュ可能である間、Hibernate はこれらのエンティティをキャッシュに入れます

c) DAO がロードされたオブジェクトを受け取る

d) DAO は、そのエンティティのいくつかの属性を操作します (いくつかの暗号化されたフィールドを復号化するなど) が、その変更を「キャッシュに関連しない」としてマークします。

e) 後続のクエリでは、常にキャッシュされ、操作されたエンティティが Hibernate キャッシュによって返されます。

このウィッシュリストが単純ではないことを願っていますが、これらは Spring/Hibernate に基づく最新のアプリのごく普通の要件であると思います。

4

1 に答える 1

0

2 次キャッシュにはエンティティは含まれません。Hibernate によってデータベース テーブルからロードされたデータの行が含まれます。エンティティがキャッシュから読み込まれるたびに、キャッシュ内のデータからエンティティの新しいインスタンスが、データベースから取得したかのように構築されます。

エンティティの一時フィールドはキャッシュに保存されません。

于 2012-05-25T17:35:32.280 に答える