如何比较休眠日期

Rom*_*omi 16 java spring hibernate

在我的数据库日期是as 2012-04-09 04:02:53 2012-04-09 04:04:51 2012-04-08 04:04:51等,我需要检索在date日期字段中具有当前日期的数据.我的意思是我只需匹配2012-04-09'.我怎么能用hibernate标准来做呢.

Ken*_*han 29

使用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));
Run Code Online (Sandbox Code Playgroud)

请注意,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));
Run Code Online (Sandbox Code Playgroud)