データベースに何度もアクセスしているため、休止状態でパフォーマンスの問題が発生しています。いくつかのフェッチ戦略を調査しています。アプリケーションが進化するにつれて、呼び出されている SQL ステートメントの数を確認できるように、いくつかの機能単体テストを作成したいと考えています。
呼び出されている SQL ステートメントの数を数えることができるかどうかを知りたいです。現時点では、show-sql を true に設定してから、コンソールで SQL をカウントしています。可能であればコードでこれを行いたいです。休止状態がコードでDBにヒットしているSQLの数を数えることは可能ですか?
ありがとう
編集
@Aleksander Blomskøldの返信後....
私のテストケースは
StatisticsService statisticsService = new StatisticsService();
Session session = entityManager.unwrap(Session.class);
statisticsService.setSessionFactory(session.getSessionFactory());
statisticsService.setStatisticsEnabled(true);
List<MyType> r= entityManager.createQuery("from MyType", MyType.class).getResultList();
System.out.println(statisticsService.getQueryExecutionCount());
System.out.println(statisticsService.getQueries()[0]);
クエリの実行回数は 1 で、クエリを見ると「from MyType」と表示されています。
ただし、ログにある SQL ステートメントには、MyType とそれに関連する多くのクラスを取得するための SQL ステートメントがあることがわかります。したがって、実際には、「from MyType」呼び出しのために DB にヒットしているすべての SQL を知りたいです。
私が必要とするものはより明確ですか?それとも、StatisticService を誤用しているだけですか
ありがとう