如何查看最终通过查询传递的参数?

时间:2014-05-02 01:48:51

标签: java hibernate time

我有什么方法可以检查,查询是如何构建的或者传递了什么值?我想检查一下这个查询:

String hql = "from Scheduled where stime <= current_time()"; // QUERY

List list = session.createQuery(hql).list();

我想知道发送current_time()的价值是什么?

4 个答案:

答案 0 :(得分:3)

current_time()未被hibernate中的特定时间替换 - 它作为SQL的一部分传递给数据库并在那里进行评估。因此,current_time()将是执行语句时数据库服务器上当前时间的任何时间。

答案 1 :(得分:2)

您可以启用Hibernate logging,这两个参数应该对您有所帮助:

  • org.hibernate.SQL - 按原样记录所有SQL DML语句 执行
  • org.hibernate.type - 记录所有JDBC参数

答案 2 :(得分:0)

如果底层数据库是SQL Server,则另一个选项是SQL Profiler。

答案 3 :(得分:0)

以下是log4j.properties中的条目,可用于打印hibernate查询和参数。

log4j.logger.org.hibernate=DEBUG, stdout
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE,stdout