我在数据库中有一个已定义的列notification_date为 DATETIME 。
当用户过滤我只得到日期。所以我使用Java转换为数据和时间。对于示例,如果userSearch Date为“ 2012-09-26 ”。最终转换的日期和时间格式为“ 2012-09-26 17:34:00 ”
当我想搜索Date过滤操作时,例如等于,小于,大于和日期之间,我无法使用Hibernate条件查询获得正确的结果查询大于和小于操作。
使用的代码
crit.add(Restrictions.gt("notificationDate",notificationVO.getNotificationDate()));
限制将根据条件
而改变要仅比较日期,Hibernate中是否有可用的功能?
还有其他想法可以解决这个问题吗?
答案 0 :(得分:1)
来自你的评论:
如果用户输入2012-09-26且搜索条件小于,我需要的所有日期都小于2012-09-26
然后限制应该是:
crit.add(Restrictions.lt("notificationDate", notificationVO.getNotificationDate()));
如果用户输入相同的日期,并且搜索条件“大于”,则使用以下限制:
crit.add(Restrictions.gt("notificationDate", notificationVO.getNotificationDate()));
当然,您将获得日期和时间大于2012-09-26 00:00:00的所有条目,当然包括2012-09-26日期的所有条目。