2010-02-14 85 views
0

我在Swing應用程序中使用Hibernate 3.3。我想檢索執行的交易中的一些統計信息,並將這些信息提供給我的觀點。例如:獲取休眠事務狀態

  • 執行時間
  • 行數觸及
  • 類型的交易(更新,刪除,創建,選擇等)

我有幾個輔助類。我正在考慮使用諸如executionTime,noRows,transactionStatus等公共字段並將它們填充到finalize()方法中。

Hibernate是否提供了訪問這種數據的方法?

回答

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特定集合的作用,QueryStatistics用於SQL和HQL查詢的信息,並SecondLevelCacheStatistics詳細運行有關可選二級數據高速緩存中特定區域的信息。一個簡便的方法是logSummary(),它通過一次調用將完整的摘要打印到控制檯。如果要通過配置啓用統計信息收集,而不是編程方式,請將hibernate.generate_statistics配置屬性設置爲true。有關各種統計信息檢索方法的更多信息,請參閱API文檔。

如果您正在應用程序服務器中運行,還可以配置JMX以提供統計信息。

+0

謝謝,但我似乎無法找到獲取總交易執行時間的方法。 – matiasf 2010-02-14 13:32:41