Hibernate条件中日期之间的限制

Hibernate条件中日期之间的限制,hibernate,Hibernate,您好,我在我的示例中使用hibernate。对于bean Table Audit试用版,我希望获取包含上限和下限的日期范围之间的Audit试用版。 我的代码如下 Criteria criteria = session.createCriteria(AuditTrail.class); criteria.add(Restrictions.between("auditDate", sDate, eDate)); 我的起始日期是2010年11月25日。结束日期是2011年5月25日,但它只给出20

您好,我在我的示例中使用hibernate。对于bean Table Audit试用版,我希望获取包含上限和下限的日期范围之间的Audit试用版。 我的代码如下

Criteria criteria = session.createCriteria(AuditTrail.class);

criteria.add(Restrictions.between("auditDate", sDate, eDate));
我的起始日期是2010年11月25日。结束日期是2011年5月25日,但它只给出2011年5月24日之前的结果。它不执行包含式搜索。是否有其他方法执行此操作。
我正在使用SQL server。

我假设您的审核日期实际上是一个时间戳。如果是这样,那么这是正常的,因为2011年5月25日意味着2011年5月25日凌晨0点。因此,当然,在2011年5月25日具有审计时间戳的每一行都在上午0点之后

我会在您的结束日期加上1天,并使用
auditDate>=sDate和auditDate

criteria.add(Restrictions.ge("auditDate", sDate)); 
criteria.add(Restrictions.lt("auditDate", eDate));

criteria.add(限制。介于(“日期(审核日期)”、sDate、eDate之间)使用此选项忽略日期后的时间。

在结束日期前再添加一天

 criteria.add(Restrictions.ge("fromDate", DateUtil.persianToGregorian(currentDate)));
 criteria.add(Restrictions.le("toDate",  DateUtil.persianToGregorian(currentDate)));

 return criteria.list();
 @Autowired
 private SessionFactory sessionFactory;

 String startDate = "2019-07-31 ";
 String endDate = "2019-08-24 ";

 Date fromDate = format.parse(fromDate);

 /* Add one more day to the end date*/

 Date to =format.parse(endDate);
 Calendar today = Calendar.getInstance();
 today.setTime(dateto);
 today.add(Calendar.DAY_OF_YEAR, 1);

 Date toDate= format.parse(format.format(today.getTime()));

 Criteria crit = sessionFactory.getCurrentSession().createCriteria(model.class);
 crit.add(Restrictions.between("dateFieldName", fromDate, toDate));
 List result = crit.list();
这会产生错误:“无法解析属性:DATE(auditDate)”Protip:如果您不必像上面的OP那样处理时间组件,您可以使用
le(…)
(而不是
lt(…)
+凌乱的日期算法)。