SpringDataJPA Hibernate CriteriaBuilder日期模糊查询

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在SpringMVC+SpringDataJPA结合Hibernate开发中如何做日期模糊查询?

在CriteriaBuilder中有一个function函数,可以通过此方法对日期数据转换成字符串数据然后再进行模糊查询

例如:

//我的开发语言Kotlin,相信你可以很容易的把下面两行代码转化为Java
val timeStr = criteriaBuilder.function("str", String::class.java, root.get("time"))
criteriaBuilder.like(timeString, "%$search%")

通过开启show-sql查看SQL语句得到如下语句:

select
        //省略N行内容
    from
        save_file savefile0_ 
    where
        //省略一些内容
        or cast(savefile0_.time as char) like ? //这行是生成的转换语句
    order by
        savefile0_.id asc limit ?

由百度得知cast的信息如下:

CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为:

CHAR[(N)] 字符型 
DATE 日期型
DATETIME 日期和时间型
DECIMAL float型
SIGNED int
TIME 时间型

转载于:https://my.oschina.net/houkunlin/blog/1784636

你可能感兴趣的:(SpringDataJPA Hibernate CriteriaBuilder日期模糊查询)