在Hibernate标准中查询小时数

时间:2013-01-11 13:30:18

标签: hibernate criteria

我想知道是否可以在hibernate条件中查询指定小时数的表。例如,我有mysql查询

SELECT * FROM eventlog WHERE HOUR(CREATED_AT) BETWEEN 8 AND 16 
         AND CREATED_AT BETWEEN '2013-01-01 11:00:00' AND '2013-01-08 11:00:00'

我想在标准中转换:

criteria.add(Property.forName("HOUR(created_at)").between(8, 16));
criteria.add(Property.forName("created_at").between('2013-01-01 11:00:00', '2013-01-08 11:00:00'));

它必须非常简单,但我真的很喜欢这个。

我将不胜感激任何帮助。 THX

2 个答案:

答案 0 :(得分:0)

看看这个example,他们会做一些类似于你问题的事情。

答案 1 :(得分:0)

好吧,我找到了一个可能的解决方案。虽然必须有另一种方法,但我会把它放在这里供您参考。

String sql = "HOUR(CREATED_AT) BETWEEN 8 AND 16";
criteria.add(Expression.sql(sql));