NHibernate
では、Load
またはGet
のメソッドを使用すると、1次キャッシュを簡単に利用できます。しかし、約ICriteria
、HQL
、Linq-to-NHibernate
およびQueryOver
はどうですか?彼らも第一レベルのキャッシュを使用していますか?ICriteriaまたは他のAPIで第1レベルのキャッシュを使用できますか?
4
A
答えて
5
エンティティを返すために使用しますが、2番目のレベルのキャッシュを使用しない限り、クエリはdbにまっすぐに進みます。
はこのことを考えてみましょう:
var fooUsingGet = session.Get<Foo>(fooId);
var fooQueryById = session.Query<Foo>().Single(f => f.Id == fooId);
2つのクエリが実行されている(のための1つのクエリに1つを取得します)が、両方の変数が同じオブジェクト参照が含まれています。
さて、あなたは第二レベルのキャッシュ、クエリキャッシュを有効にし、クエリのキャッシュを指定した場合:
var fooQueryById = session.Query<Foo>().Cacheable()
.Single(f => f.Id == fooId);
var fooQueryByIdAgain = session.Query<Foo>().Cacheable()
.Single(f => f.Id == fooId);
つだけのクエリが実行されます。
0
いいえ、私が理解しているように、そうではありません。彼らは第2レベルのキャッシュのみを使用します。 FirsレベルのキャッシュはGet
とLoad
のみです。
関連する問題
- 1. Hibernate第2レベルのキャッシュが1対1で動作しない
- 2. 第1レベルのキャッシングを休止できますか?
- 3. Python Pandas第2レベルのインデックス(または他のレベル)でマルチインデックスをスライス
- 4. NHibernateの第3レベルのキャッシュ
- 5. マルチページフォーム用のHibernate第2レベルのキャッシュ
- 6. ActiveRecordBase.FindAll()は第1レベルのキャッシュを許可していませんか?
- 7. 第1レベルのキャッシュの古くなったデータ
- 8. Doctrine:第2レベルのキャッシュ
- 9. NHibernateの第二レベルのキャッシュは
- 10. 私は休止状態の第2レベルのキャッシュを使用するべきですか?
- 11. Hibernate:第3レベルのキャッシュがありますか?
- 12. IsExpandedはTreeViewの第1レベルでのみ機能します
- 13. をクリアHibernateの第2レベルのキャッシュ
- 14. Superfish jQueryメニュー:第1レベルをホバリングしたときに第3レベルが常に開きます
- 15. MemcachedをEntity Framework 6の第2層キャッシュとして使用できますか?
- 16. ネイティブのEclipseLink:一部のエンティティで第2レベルのキャッシュを有効にします
- 17. Castle ActiveRecordベースのアプリケーションで第1レベルのキャッシュが有効になっていますか?
- 18. 各トランザクションで別々のセッションが使用されている場合は、Hibernateの第1レベルのキャッシュを使用します。
- 19. hibernateの第2レベルのキャッシュに対するjdbcクエリの影響は何ですか?特定のキャッシュ領域に対してキャッシュリフレッシュを起動できますか?
- 20. Hibernate - 第2レベルのキャッシュ使用状況を確認するにはどうすればよいですか?
- 21. 第3レベル(モンドリアンMDX)にフィルタを適用した後の第1レベルのデータメンバを取得する方法
- 22. エクスプレスを使用して第1レベルのパスで動的コンテンツを使用しています
- 23. 常にJEE JPAの型付きクエリがDBに...繰り返します。第1レベルのキャッシュ混乱
- 24. さまざまなAPIレベルに異なるコンポーネントを使用できますか?
- 25. 「エンティティフレームワーク6.1の第2レベルのキャッシュ」プラグインでエンティティが変更されたときにキャッシュがパージされない
- 26. 3レベルアコーディオン - Uncollapse第1レベルをクリックして第3レベル
- 27. いつ休止状態で第1レベルのキャッシュを使用しますか?どのようにログに記録する?
- 28. レベル1とレベル2のキャッシュをパージする方法は?
- 29. 第1レベルがソートdescで第2レベルがソートアスペクトのネストされたコメントを行う方法?
- 30. Hibernate 5.2.2で第2レベルのキャッシュを有効にする方法は?
将来の人々のためのちょっとした注意:最初のコードブロックでは、(クエリの後に続く)2つのクエリが実際に実行されます。しかし、順序を変更すると(クエリの後にget)、1つ目のレベルのキャッシュが開始されるため、クエリではキャッシュがプライムされます。これはayendes "Get、Load、Id by query"の記事に反していますが、これは以前のバージョンのlinqドライバを参照しているようです –