一开始没注意用法,在查询日期范围时直接将时间类型拼接到hql字符串里面了,结果总是报错。正确用法应该如下:
String hql = "from Channel where c.create_time >= ? order by c.create_time"; // 用占位符
Query query = session.createQuery(hql);
query.setParameter(0, time);// time类型须是java.sql.Date
return query.list(); // list()才真正开始查询另外,创建Date类型日期,应该使用Canlendar类,如:
java.util.Date date1 = Calendar.getInstance().getTime();
java.util.Date date2 = Calendar.getInstance().add(Calendar.DATE, 1).getTime();

本文介绍了在Hibernate查询语言(HQL)中正确查询日期范围的方法,避免直接拼接时间类型到HQL字符串中导致错误。同时给出了使用占位符参数化查询的例子,并展示了如何通过Calendar类创建Date类型的日期。

被折叠的 条评论
为什么被折叠?



