だから私の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();
私はむしろ使用したい JMX経由で公開されたHibernate Statistics Springを使用する場合は、 Hibernate Statistics MBean with Spring を使用すると非常に簡単になります。
そのためのロガーを追加することもできます。見る; 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>
HibernateStatisticsにアクセスする方法は複数あります。
アプリケーションでStatistics
オブジェクトを取得する場合は、次のように実行できます。
Session session = entityManager.unwrap(Session.class);
Statistics statistics = session.getSessionFactory().getStatistics();
Statistics
レポートをログに記録する場合は、次のログ構成エントリを追加する必要があります。
<logger name="org.hibernate.engine.internal.StatisticalLoggingSessionEventListener" level="info"/>
この記事 で説明されているように、JMXを介してStatistics
オブジェクトを公開することもできます。
このためには、次の構成プロパティを設定する必要があります。
<property name="hibernate.jmx.enabled" value="true"/>
そして、JMXクライアントアプリケーションでorg.hibernate.core
MBeanパッケージを見つけます。
Hibernateがサポートするメトリックについてよりよく理解したい場合は、 この記事 を確認してください。
私たちのアプリケーションでは、JMXを介して公開し、完全にするために、手動で行うのが嫌いです アスペクトを使用して基準クエリデータを追加します