私の経験からすると、アプリケーション (およびデータの種類/構造) に大きく依存します。私が現在取り組んでいるアプリケーションには、3 つのビルトイン キャッシュ レイヤーがあります (すべて Ehcache によってサポートされています)。ファサード層。キャッシュは相互に補完するように調整されています (キャッシュ クエリ パラメータ、有効期間、サイズなど)。
したがって、アプリオリに、それが機能しないとは言えません。それを使用してORMレイヤー全体をスキップできる可能性があります。プロファイリングを行っている場合 (私はperf4jが好きです)、少なくとも DAO から取得するのにコストがかかる「ホット」なオブジェクトを最適化できます。Spring Framework を使用している場合は@Cacheable
、メソッドにアノテーションなどを適用することで、これを簡単に行うことができます。可能であれば、(ほぼ) ライブ データとリクエストを使用してパフォーマンス テストを行います。
実際、Hibernate の第 2 レベル キャッシュを使用するのは簡単で怠惰な方法だと思います (つまり、良い最初のステップと言えます) が、パフォーマンスの向上は限られています。いくつかのより具体的なキャッシングを使用すると、アプリケーションの一部 (できれば重要なもの) の高速化として、通常は負荷が軽減されて、数百または数千の係数を簡単に取得できます。