这是来自 HQL 中的 WHERE 子句:
(current_timestamp() - c.m_some_time) >= :3000) // finding 3 seconds and older
它不起作用。
我看到了很多关于这个主题的问题,但他们都避免使用current_timestamp()
并使用 Java Date() 代替(使用setString()
),这对我来说是错误的,因为我需要精确。
我看到的另一种方法是派生一种方言并注册我自己的函数。这个好像太过分了。
有什么方法可以在纯内置 HQL 中进行简单的时间数学运算并将其与简单的毫秒/秒值进行比较?
我很好奇的另一个问题是为什么上面的 WHERE 子句确实通过了 HQL 的检查?我的意思是,这是有效的 HQL 查询的一部分(当其他 WHERE 子句有效时)。