0

SwingアプリケーションでHibernate3.3を使用しています。実行されたトランザクションに関するいくつかの統計を取得し、その情報をビューで利用できるようにしたいと思います。例えば:

  • 実行時間
  • タッチされた行の数
  • トランザクションのタイプ(更新、削除、作成、選択など)

いくつかのヘルパークラスがあります。私は、executionTime、noRows、transactionStatusなどのパブリックフィールドをいくつか持って、finalize()メソッドにそれらを入力することを考えています。

Hibernateはこの種のデータにアクセスする方法を提供しますか?

4

1 に答える 1

2

はい、Hibernateはライブ統計を提供します。Hibernateブックの使用例:

Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
stats.setStatisticsEnabled(true);
...

stats.getSessionOpenCount();
stats.logSummary();

EntityStatistics itemStats = stats.getEntityStatistics("auction.model.Item");
itemStats.getFetchCount();

統計インターフェースはStatistics、グローバル情報、EntityStatistics特定のエンティティに関する情報CollectionStatistics、特定の収集ロール、QueryStatisticsSQLおよびHQLクエリ、およびSecondLevelCacheStatisticsオプションの第2レベルのデータキャッシュ内の特定の領域に関する詳細な実行時情報用です。便利な方法はlogSummary()、1回の呼び出しで完全な要約をコンソールに出力する方法です。プログラムではなく、構成を通じて統計の収集を有効にする場合は、hibernate.generate_statistics構成プロパティーをtrueに設定します。さまざまな統計検索方法の詳細については、APIドキュメントを参照してください。

アプリサーバーで実行している場合は、統計を提供するようにJMXを設定することもできます。

于 2010-02-14T13:06:13.520 に答える