我有一张表(在Oracle 9及更高版本中),在这里我需要使用Hibernate查找给定日期的所有条目。这些条目具有时间戳(数据类型为“ date”)。一些条目有一个时间,其他条目只有一个日期。这不能更改,因为这是我无法更改的其他应用程序的输出。在SQL中,我会按照
SELECT * FROM table WHERE trim(table.date) = to_date('11.06.2009')
获取我想要的日期的所有条目。我想知道如何让Hibernate使用HQL做到这一点。我知道我可以在Hibernate中使用SQL查询,但这似乎不太干净。有没有办法做到这一点?如果可能的话,这种方法也应该适用于非Oracle数据库,其中timestamp是数据类型。
您可以在HQL中放入两个约束,一个约束指定大于或等于您搜索日期的开始,另一个约束指定小于第二天。
即
table.date >=11.06.2009 AND table.date < 11.07.2009
HQL(以及SQL)还允许:
table.date between 11.06.2009 AND 11.07.2009
在保持心中between永远包容性,这意味着它都>=和<=分别。此处的 更多详细信息between:http : //www.coding- dude.com/wp/java/hibernate-java/hibernate-hql-between- expression/
between
>=
<=