Hibernate 获取休眠事务状态

Hibernate 获取休眠事务状态,hibernate,transactions,status,Hibernate,Transactions,Status,我正在Swing应用程序中使用Hibernate 3.3。我想检索已执行事务的一些统计信息,并将这些信息提供给我的视图。例如: 执行时间 接触的行数 交易类型(更新、删除、创建、选择等) 我有几个助手类。我正在考虑使用一些公共字段,如executionTime、noRows、transactionStatus等,并将它们填充到finalize()方法中 Hibernate是否提供访问此类数据的方法?是的,Hibernate提供实时统计信息。Hibernate手册中的使用示例: Statist

我正在Swing应用程序中使用Hibernate 3.3。我想检索已执行事务的一些统计信息,并将这些信息提供给我的视图。例如:

  • 执行时间
  • 接触的行数
  • 交易类型(更新、删除、创建、选择等)
我有几个助手类。我正在考虑使用一些公共字段,如executionTime、noRows、transactionStatus等,并将它们填充到finalize()方法中


Hibernate是否提供访问此类数据的方法?

是的,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
,用于SQL和HQL查询的
QueryStatistics
,和
SecondLevelCacheStatistics
,获取可选二级数据缓存中特定区域的详细运行时信息。一种方便的方法是
logSummary()
,它只需一次调用即可将完整的摘要打印到控制台。如果要通过配置而非编程方式启用统计信息的收集,请将
hibernate.generate_statistics
configuration属性设置为true。有关各种统计信息检索方法的更多信息,请参阅API文档


如果您在应用服务器中运行,还可以配置JMX以提供统计信息。

谢谢,但我似乎找不到获取总事务执行时间的方法。