码迷,mamicode.com
首页 > 数据库 > 详细

Spring Data Jpa Specification 调用Oracle 函数/方法

时间:2020-06-04 13:30:51      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:mysq   避免   pre   一个   tar   root   Plan   oracl   jpa   

开发框架用的Jpa,数据库是 Oracle。
在开发中难免会遇到需要数据库字段是字符串格式,但是又需要对其进行范围查询(数据库设计问题,后续应避免).那么问题来了, Jpa Specification怎么查询呢?

if(StrUtil.isNotBlank(planStartDate)){
                //调用Oracle方法,第一个参数是方法名称,第二个是返回数据类型,后续的是参数,可以多个
                Expression<Date> function = criteriaBuilder.function("to_date" , Date.class,
                        root.get("planStartDate"), criteriaBuilder.literal("YYYY-MM-DD"));
                //得到Expression 就可以进行后续操作了
                Predicate predicate = criteriaBuilder.greaterThan(function, DateUtil.parse(planEndDate));
                predicates.add(predicate);
            }

生成的sql如下

select
            projecttop0_.*
        from
            tecskill_topic projecttop0_ 
        where
            projecttop0_.pass_status=1 
            and projecttop0_.project_status=2 
            and to_date(projecttop0_.plan_start_date, ? )>?

Spring Data Jpa Specification 调用Oracle 函数/方法

标签:mysq   避免   pre   一个   tar   root   Plan   oracl   jpa   

原文地址:https://www.cnblogs.com/INWCL/p/13042670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!