spring数据动态组合@query查询

Mel*_*ius 5 java spring jpql spring-data spring-data-jpa

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

@Query(value = ":DyanamicQuery")
List<PrizeInsuranceConfiguration> filterConfigurPrizeInsurance(String DyanamicQuery);
Run Code Online (Sandbox Code Playgroud)

或至少条件部分

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

xyz*_*xyz 2

做,你可以做到。不这样做的原因有两个:

  1. sql 注入(spring data 使用准备好的语句);
  2. (第一个原因的结果)Spring Data创建查询树并绑定所有参数

但如果您需要动态查询,您可以使用规范示例查询Querydsl