0

私たちのアプリケーションは読み取り専用データを処理するため、すべてのクエリで Hibernate クエリ キャッシュ機能 (ehcache によって実装) を使用することを検討しています。

ここまでで、第 2 レベル キャッシュとクエリ キャッシュの両方を有効にしました。

<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>

そして、各クエリがキャッシュ可能であることを hibernate に伝えました。

query.setHint("org.hibernate.cacheable", true);

このアプローチには 2 つの欠点があります。

  • コードの冗長性 (クエリごとに手動でヒントを追加する必要があるため)


  • hibernate の依存関係 (これまでのところ、 JPA アノテーションのみを使用して、コードは直接の hibernate 参照からクリーンです)

これを達成する方法はありますか、つまり、構成ファイルのみを使用してすべてのクエリをキャッシュしますか?

ありがとうございました!

4

2 に答える 2

0

私のアプリでは、すべてのクエリをキャッシュできることは理にかなっています。非常に大きくて古いアプリケーションを使用しているため、同じトランザクション中でも多くのクエリが重複してしまいます。そのアプリは、リクエスト中にすべてのクエリのクエリ結果をキャッシュできれば、はるかに高速に実行され、メモリをあまり使用しません。簡単にするために、キャッシュを 10 秒間設定すると、アプリケーションが大幅に高速化されます。

于 2017-10-25T20:35:53.470 に答える