Hibernate 维护有关查询哪些对象以及查询频率的统计信息
– 在配置文件中启用统计
• hibernate.generate_statistics=true
休眠接口
– 全局信息统计
– EntityStatistics 获取有关对象类型的信息
– SQL 和 HQL 查询的 QueryStatistics
我认为您需要记录时间戳而不是统计信息,但您可以根据自己的要求使用以下任何选项。
您可以使用 log4jdbc JDBC 代理驱动程序来记录 SQL 和其他有趣的信息。
您可以在您的类路径中使用 slf4j-api.jar 以及您首选绑定的 jar 文件 - slf4j-log4j12.jar
要使用 Log4j,您还需要在类路径中放置一个 log4j.properties 文件。一个示例属性文件与 Hibernate 一起分发在 src/ 目录中。
休眠日志类别
org.hibernate.SQL -
在执行时记录所有 SQL DML 语句
org.hibernate.type - 记录所有 JDBC 参数
org.hibernate.tool.hbm2ddl - 在执行时记录所有 SQL DDL 语句
org.hibernate.pretty - 在刷新时记录与会话关联的所有实体(最多 20 个实体)的状态
org.hibernate - 记录一切。这是很多信息,但对故障排除很有用
使用 Hibernate,您几乎应该始终为 org.hibernate.SQL 类别启用调试,或者启用属性 hibernate.show_sql
<attribute name="ShowSqlEnabled">true</attribute>
- 例如,通过启用统计信息,您可以获得特定实体类猫统计信息的总数。 (插入、更新或删除调用了多少次)如下:
EntityStatistics entityStats =
stats.getEntityStatistics( Cat.class.getName() );
long changes =
entityStats.getInsertCount()
+ entityStats.getUpdateCount()
+ entityStats.getDeleteCount();
log.info(Cat.class.getName() + " changed " + changes + "times" );
- `String hql = "从 POJO 作为 POJO 其中 to_date(to_char(POJO.tradeDate, 'DD-MON-YY'), 'DD-MON-YY') = :date";
查询查询 = getSession().createQuery(hql);
query.setParameter("日期", 日期);
`
有关详细信息,请查看 Hibernate 文档。