在Spring Data @Query中基于DAO方法参数修改SQL

时间:2018-01-09 21:49:22

标签: spring spring-data spring-data-jpa

我有一个Spring Data查询方法,其中SQL / HQL可以根据传递给方法的方法参数而变化,在本例中为boolean methodParam。有没有办法实现以下目标?

@Query("select ...  " + 
       ".... " +
       "...."  +
       (methodParam ? "variant1" : "variant2") + 
       "....")
public List<MyObject> findObjects(boolean methodParam);

1 个答案:

答案 0 :(得分:0)

创建查询以使用OR和两个不同的条件(例如

)会更好
select
...
where
...
AND (
   (methodParam = 1 AND <variant1 conditions>)
   OR
   (methodParam = 0 AND <variant2 conditions>)
    )
...

如果是布尔值,你可以声明两个方法。