問題タブ [hibernate-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - クエリ キャッシング リージョンはエンティティ キャッシング リージョンと同じにする必要がありますか
私のプロジェクトでは、休止状態のクエリ キャッシング (ehcache を使用) と、一部のエンティティに対して第 2 レベルのエンティティ キャッシングを有効にしました。また、ドキュメントでは、クエリ キャッシュは完全なエンティティ オブジェクトを格納せず、エンティティ ID のみを格納することが記載されています。したがって、パフォーマンスを向上させるには、第 2 レベルのエンティティ キャッシュも有効にする必要があります。
クエリ キャッシング リージョンとエンティティ キャッシング リージョンを同じにする必要があるかどうか疑問に思っていました。または、それらが異なっていても問題ありませんが、クエリキャッシュにキャッシュされたクエリの結果である場合、エンティティは第 2 レベルのキャッシュから返されますか? 私が持っている別の質問は、ビジネスの分類に基づいて、さまざまなエンティティに対してさまざまな第 2 レベルのキャッシュ領域を構成してもよいですか?
hibernate - Hibernate の第 2 レベルのキャッシュが GORM 6.1.11 で機能しない
問題:
Hibernate の第 2 レベルのキャッシュが using で使用される条件クエリがありますcache(true)
。
このコードが 2 回ヒットすると、1 回目は予期されるデータベース クエリが作成されますが、次回同じコードが実行されるときは、クエリのデータベースにヒットするのではなく、キャッシュから取得する必要があります。しかし、それは起こっていません。
ログ:
環境:
- オペレーティングシステム: MacOS、CentOS7
- GORM バージョン: 6.1.11
- Grails バージョン (Grails を使用している場合): 3.3.9
- JDK バージョン: 1.8.0_91
再現する手順:
- このレポをクローン
git clone git@github.com:wizpanda/test-l2-cache.git
- MySQL データベースにログインし、新しいデータベースを作成します
create database test_l2_cache
- でMySQLのユーザー名とパスワードを変更します
grails-app/conf/application.yml
- アプリを実行する
grails run-app
か、./gradlew bootRun
http://localhost:8080/
ログを参照して確認する
提起された問題: https://github.com/grails/grails-data-mapping/issues/1266