将SQL查询转换为Hibernate查询

4

我可以帮你将一些SQL转换为Hibernate SQL。

SQL:

String sql = "select time, hour(time) as hour, minute(time) as minute "
           + "from db where time >= DATE_ADD(now(), INTERVAL -24 HOUR) "
           + "group by 2 order by time LIMIT 500";

我使用SQLQuery添加标量。我尝试了以下HQL代码:
String hql = "select time, hour(time), minute(time) from db as O "
           + "where O.time >= :time group by 2 order by O.time";

Query query = session.createQuery(hql);
query.setDate("time", calend.getTime()); //calend is a Calendar object

然而,这并不起作用。错误显示它是hql错误。

由于您只使用了一个表,请尝试不使用表别名。 - Vamsi Prabhala
如果我没有使用表别名,我仍然会得到相同的错误。 - o.o
尝试使用 GROUP BY hour(time) 看看是否有帮助。 - knittl
1个回答

0

不要使用 setDate,尝试使用 setParameter

来自这篇关于HQL日期的链接:

"setDate" 会截断 HQL 日期值并忽略小时、分钟、秒。

使用 setParameter 将解释为您通过 :variable 指定的参数值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接