Sql server 如何查看HQL最终查询

Sql server 如何查看HQL最终查询,sql-server,hibernate,jpql,Sql Server,Hibernate,Jpql,我正在尝试运行以下查询并获得一个空指针异常。我已经验证了WHERE lockedTimestampEntityManager.createQuery需要一个查询字符串(不是HQL,也不是SQL)。JPQL没有定义CAST函数 我将用Java计算时间戳限制,并将其作为参数传递给查询: Date limit = ...; this.em.createQuery("SELECT c FROM Content c WHERE lockedTimestamp <= ?") .setPa

我正在尝试运行以下查询并获得一个空指针异常。我已经验证了
WHERE lockedTimestamp
EntityManager.createQuery
需要一个查询字符串(不是HQL,也不是SQL)。JPQL没有定义
CAST
函数

我将用Java计算时间戳限制,并将其作为参数传递给查询:

Date limit = ...;
this.em.createQuery("SELECT c FROM Content c WHERE lockedTimestamp <= ?")
       .setParameter(0, limit);
日期限制=。。。;

this.em.createQuery(“从内容c中选择c,其中lockedTimestamp为什么不使用更加明显和直观的计算,例如

SELECT c FROM Content c WHERE lockedTimestamp <= DATEADD(MINUTE, -6, GETDATE());

SELECT c FROM Content c WHERE lockedTimestampTodebugsql,您可以通过在Hibernate配置属性中添加配置Hibernate.show_sql=true来显示启动Hibernate的查询


查询将显示在控制台中,这正是hibernate对数据库所做的查询。

+1对于更容易准备的查询…我将如何使用createQuery()虽然^ ^ ^@Webnet不知道,对不起-我知道SQL,但我不使用hibernate。
SELECT c FROM Content c WHERE lockedTimestamp <= DATEADD(MINUTE, -6, GETDATE());