java - Spring JpaRepositoryn 中的 %Like% 查询
问题描述
我想在 JpaRepository 中写一个类似的查询,但它没有返回任何东西。
这是我的代码:
@Query(value = "select * from DC_NOTIF_EVNT_ORG_CONFIG C JOIN DC_NOTIF_EVNT_ORG_PERS B ON
B.NOTIF_EVNT_ORG_CONFIG_ID=C.NOTIF_EVNT_ORG_CONFIG_ID JOIN GRR_PARTY GRR ON GRR.PERS_ID =B.PERS_ID JOIN DC_NOTIF_EVNT_CONFIG D ON C.NOTIF_EVNT_CONFIG_ID=D.NOTIF_EVNT_CONFIG_ID JOIN DC_SCHED_FREQ_CONFIG E ON E.SCHED_FREQ_CONFIG_ID= C.SCHED_FREQ_CONFIG_ID JOIN DC_NOTIF_EVNT_SCHED F ON F.NOTIF_EVNT_SCHED_ID=C.NOTIF_EVNT_SCHED_ID JOIN DC_ORG G ON C.ORG_ID=G.ORG_ID WHERE C.ORG_ID=:orgId AND GRR.PERS_ID=:persId AND C.ACT_IND=1 AND STRT_DT LIKE TO_DATE(TO_CHAR(TO_DATE(:%strtDt%,'YYYY-MM-DD'),'MM/DD/YYYY'),'MM/DD/YYYY') AND ROWNUM<2",nativeQuery = true)
List<Notlist> ifNotificationExist(@Param("orgId") Long orgId, @Param("persId") Long persId,@Param("strtDt") LocalDate strtDt);
解决方案
请试试:
/* as before ...*/
to_char(STRT_DT, 'YYYY-MM-DD') LIKE '%'||to_char(:strtDt, 'YYYY-MM-DD')||'%'
/*...*/
...我什至认为:
to_char(STRT_DT, 'YYYY-MM-DD') = to_char(:strtDt, 'YYYY-MM-DD')
..会很好!
自从:
... STRT_DT LIKE TO_DATE(TO_CHAR(TO_DATE(:%strtDt%,'YYYY-MM-DD'),'MM/DD/YYYY'),'MM/DD/YYYY') ...
很奇怪/奇怪!
假设:
- 您在 oracle 数据库上。
:strDt
是java.util.LocalDate
输入变量。STRT_DT
是一个“日期类型”(DATE/DATETIME/TIMESTAMP)列。:strtDt
您想通过param 和STRT_DT
column的“日期相等”(仅年月日部分)过滤查询。
推荐阅读
- python - 推文抓取 - 如何衡量推文强度?
- racket - (range xy) 可以在 Racket Dispatch: case 中使用吗?
- visual-studio - 在 Visual Studio 中调试时如何将变量设置为 null
- ajax - 无法通过 Ajax laravel 8 保存数据
- django - 如何在 ManyToManyField 中显示数字显示为数字但不是可编辑的
- python - 优化 pandas 中的字符串操作
- java - 无法运行我现有的 spring mvc 项目
- scala - Scala REPL 中的 Scala 数组函数
- python - 解决Windows上python环境中的错误
- java - selenium web 驱动程序表单提交