我在使用休眠时遇到了一些性能问题,因为它多次访问数据库。我正在研究一些获取策略。我想编写一些功能单元测试,以便随着我的应用程序的发展,我可以看到正在调用多少 SQL 语句。
我想知道我是否可以计算出调用了多少条 SQL 语句。目前我将 show-sql 设置为 true,然后在控制台中计算 SQL。如果可能的话,我想在代码中做到这一点。是否可以计算有多少 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,如果我查看查询,它说它是“来自 MyType”
但是,在日志中的 sql 语句中,我可以看到有 SQL 语句来检索 MyType 及其许多相关类。所以实际上我想知道由于“from MyType”调用而影响数据库的所有 SQL。
我的要求更清楚吗?还是我只是滥用 StatisticService
谢谢