在Hibernate条件中查询小时数

在Hibernate条件中查询小时数,hibernate,criteria,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)").be

我想知道是否可以在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

看看这个,他们做了一些与你的问题类似的事情。

嗯,我找到了一个可能的解决方案。虽然一定有别的办法,我还是把它放在这里供你参考

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

好的,我改成了小时。