nhibernate.cfg.xml ファイルに class-cache を設定しました。
Id でエンティティを取得すると、オブジェクトが読み込まれると SQL リクエストが表示されません。
しかし、基準を使用してエンティティをフェッチすると、常に SQL クエリが発生します...
編集:
これは私の質問に答えると思います:
http://www.javalobby.org/java/forums/t48846.html
名前などの ID で直接検索するよりも、より複雑なクエリに基づいてエントリを検索したいとしましょう。この場合、Hibernate は引き続き SQL ステートメントを発行して、クエリのベース データセットを取得する必要があります。たとえば、このコードは次のようになります。
Query query = session.createQuery("from Person as p where p.firstName=?"); query.setString(0, "ジョン"); リスト l = query.list(); ...単一の選択を呼び出します(関連付けがキャッシュされていると仮定します)。
select * from Person where firstName='John' この 1 つの選択で '1' が返され、すべてがキャッシュされているため、他のすべてのルックアップにキャッシュが使用されます。この必須の単一選択は、クエリ キャッシュの出番です。