2012-02-14 1 views
5

最初のキャッシュレベルが使用されているかどうかを確認するには、休止状態のログレベルで簡単な方法がありますか?いつ休止状態で第1レベルのキャッシュを使用しますか?どのようにログに記録する?

私が次のようなhqlリクエストを行っている場合は、「ドキュメントdからフェッチd.folderをどこにd.id = 2にしますか」;同じセッションでいくつかの時間は、キャッシュが使用されますか?

ありがとう

答えて

2

Hibernate L1キャッシュはエンティティを主キーで格納します。つまり、load()またはget()を使用して同じエンティティをロードすると(これは、from Document d where d.id=2のような単純なクエリにも当てはまると思います)、キャッシュされます。

あなたの場合、クエリはもう少し複雑でL2を使用する必要があります。残念ながら、L1アクティビティを示すロガーはありません(少なくともdocumentedではありません)が、SQLクエリのshoulsで十分です。

も参照してください:

+0

何左とクエリについては、別のエンティティにフェッチ参加しますか?リンクのおかげで – Quentin

+0

@クエンティン:私はあなたがこの場合L2キャッシュに戻らなければならないと信じています。 –

+0

あなたはどうすればそれを(またはどのクラスがこのキャッシュを担当して)記録できるのか分かりますか? – Quentin

関連する問題