开发框架用的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, ? )>?

最新文章

  1. ios 学习笔记之控件属性
  2. gollum安装教程
  3. [改善Java代码]构造代码块会想你所想
  4. Android应用启动画面
  5. 教程-Supports判断接口(Instance)是否支持
  6. Android 自学之拖动条SeekBar
  7. C#基础(六)——值类型与引用类型
  8. EqualsBuilder和HashCodeBuilder
  9. HTML基础知识笔记(一)
  10. 开源来自百度商业前端数据可视化团队的超漂亮动态图表--ECharts
  11. Celery 源码解析六:Events 的实现
  12. Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)
  13. 20175221 《Java程序设计》第5周学习总结
  14. ECS上配置FTP Filezilla
  15. scrapy windows下出现importError:No module named &#39;win32api&#39;
  16. leetcode 93 复原IP地址
  17. vs2015 编译google v8
  18. JS编写日历控件(支持单日历 双日历 甚至多日历等)
  19. oracle 嵌套查询
  20. gcc与glibc关系

热门文章

  1. 马上要去bupt参加培训了。。
  2. 【漫画】读写锁ReadWriteLock还是不够快?再试试StampedLock!
  3. RobotFramework Selenium2Library 关键字详解
  4. ql的python学习之路-day11
  5. quartzJob
  6. 函数的不同调用方式决定了this的指向不同
  7. MySQL表的CRUD及多表查询
  8. day09作业01用户登录与验证
  9. 基于 abp vNext 和 .NET Core 开发博客项目 - 统一规范API,包装返回模型
  10. Gym100548F Color