一尘不染

如何比较休眠中的日期

hibernate

在我的数据库日期中,如2012-04-09 04:02:53 2012-04-09 04:04:51 2012-04-08 04:04:51,等等,我需要检索在日期字段中具有当前日期的数据。我的意思是我只需要比赛2012-04-09'。我该如何使用hibernate条件。


阅读 236

收藏
2020-06-20

共1个答案

一尘不染

使用Restrictions.between()生成一个where子句,该子句的日期列在‘2012-04-09
00:00:00’和‘2012-04-09 23:59:59’之间

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date fromDate = df.parse("2012-04-09 00:00:00");
Date toDate = df.parse("2012-04-09 23:59:59");

criteria.add(Restrictions.between("dateField", fromDate, toDate));

请注意,Criteria API中使用的所有属性都是Java属性名,而不是实际的列名。


更新:仅使用JDK获取当前日期的fromDate和toDate

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date fromDate = calendar.getTime();

calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
Date toDate = calendar.getTime();

criteria.add(Restrictions.between("dateField", fromDate, toDate));
2020-06-20