您的位置:首页 > 编程语言 > Java开发

JpaRepository关于日期(不带时间)查询注意事项

2016-12-13 21:55 309 查看
在使用JpaRepository(spring data提供的一种数据访问功能)时,可能会遇到通过日期查询对应实体类的方法。

比如:
实体类为:HappyBirthday
MySQL里的字段“happy_date”,类型为date(比如2016-12-22)。

通过实现JpaRepository的方法:

findByHappyDate(Date happyDate);


来查询参数等于happyDate的实体。

当输入参数时,时间部分必须全为0,有如下两种方法:
1、使用Date:

Date temp = new Date();
temp.setDate(22);
Date happyDate = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
happyDate = df.parse(df.format(date));
} catch (ParseException e) {
e.printStackTrace();
}

2、第一种方法有点gancient,可以使用第二种方法,如下:

Calendar cal = Calendar.getInstance();
cal.set(Calendar .DAY_OF_MONTH, 22);
cal.set(Calendar .HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0); //关键的一步,很多时候忽略了毫秒置0,而无法查询出想要的结果
Date happyDate = c.getTime();


接下来,就使用实现的方法对数据库进行查询:

List<HappyBirthday> hb = findByHappyDate(Date happyDate);


人生第一篇博客,so intersting!!!




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息