2

我在数据库中有一个定义的列 notification_date 作为DATETIME 。

当用户过滤时,我只得到日期。所以我正在使用 Java 将数据和时间转换为数据。例如,如果 userSearch 日期是“ 2012-09-26 ”。最终转换的日期和时间格式为 ' 2012-09-26 17:34:00 '

当我想搜索日期过滤器操作,如等于、小于、大于和日期之间时,我无法使用休眠条件查询大于和小于操作获得正确的结果。

使用的代码

crit.add(Restrictions.gt("notificationDate",notificationVO.getNotificationDate()));

限制会根据情况而改变

仅比较日期,Hibernate 中是否有可用的功能?

还有其他想法来解决这个问题吗?

4

1 回答 1

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 日期的所有条目。

于 2012-09-28T08:19:53.160 回答