Поэтому в моем persistence.xml
я включил hibernate.generate_statistics
.
<property name="hibernate.generate_statistics">true</property>
Мой вопрос, как мне получить к ним доступ? Куда идет статистика?
Поэтому в моем persistence.xml
я включил hibernate.generate_statistics
.
<property name="hibernate.generate_statistics">true</property>
Мой вопрос, как мне получить к ним доступ? Куда идет статистика?
В своем сервисе dao вы можете пойти:
Session session = this.sessionFactory.getCurrentSession();
SessionStatistics sessionStats = session.getStatistics();
Statistics stats = this.sessionFactory.getStatistics();
Я предпочел бы использовать Hibernate Statistics, опубликованную через JMX, если вы используете spring, вы можете сделать это очень легко с помощью Hibernate Статистика MBean с Spring
В нашем приложении мы опубликовали его через JMX и чтобы он завершал нас в виде ручного добавлять данные запроса критериев с помощью аспектов
Вы также можете добавить к нему регистратор. Видеть; http://www.thoughts-on-java.org/how-to-activate-hibernate-statistics-to-analyze-performance-issues/
<!--Hibernate Statistics-->
<logger category="org.hibernate.stat" use-parent-handlers="true">
<level name="DEBUG"/>
</logger>
Есть несколько способов доступа к статистике Hibernate:
Если вы хотите получить объект Statistics
в вашем приложении, вы можете сделать это следующим образом:
Session session = entityManager.unwrap(Session.class);
Statistics statistics = session.getSessionFactory().getStatistics();
Если вы хотите регистрировать Statistics
отчет, вам нужно добавить следующую запись конфигурации журнала:
<logger name="org.hibernate.engine.internal.StatisticalLoggingSessionEventListener" level="info"/>
Вы также можете открыть объект Statistics
через JMX, как описано в этой статье.
Для этого вам нужно установить следующее свойство конфигурации:
<property name="hibernate.jmx.enabled" value="true"/>
И найдите org.hibernate.core
MBean org.hibernate.core
в вашем клиентском приложении JMX.
Если вы хотите лучше понять, какие метрики поддерживает Hibernate, ознакомьтесь с этой статьей.