spring数据动态组合@query查询

Posted

技术标签:

【中文标题】spring数据动态组合@query查询【英文标题】:spring data compose @query query dynamically 【发布时间】:2017-12-13 05:03:32 【问题描述】:

我有一种情况,我必须以某种方法编写一个 JPQL 查询,然后将此查询传递给 spring data 查询方法,以用作@Query 注释中的查询

@Query(value = ":DyanamicQuery")
List<PrizeInsuranceConfiguration> filterConfigurPrizeInsurance(String DyanamicQuery);

或者至少是条件部分

@Query(value = "SELECT c FROM PrizeInsuranceConfiguration c WHERE  :DyanamicConditions")
List<PrizeInsuranceConfiguration> filterConfigurPrizeInsurance(String DyanamicConditions);

【问题讨论】:

【参考方案1】:

做,你可以做到。没有的原因有两个:

    sql 注入(spring 数据与prepared statements 一起工作); (第一个原因的结果)spring数据创建查询树并绑定所有参数

但如果您需要动态查询,您可以使用Specifications、Query by Example 或Querydsl。

【讨论】:

以上是关于spring数据动态组合@query查询的主要内容,如果未能解决你的问题,请参考以下文章

spring JPA 动态查询

利用SpEL 表达式实现简单的动态分表查询

请教关于Spring Data JPA动态查询参数的问题

动态组合 Q() - OR 对象

Spring Data JPA 中的动态查询

将值的动态列表传递到 Table.Combine