如何在JPQL中正确使用'and if',就像这样:@Query(“从表名t中选择t,其中1 = 1和if(:a ='',1 = 1,t.a =:a)”),

时间:2019-05-23 01:18:36

标签: jpa

如何在JPQL中正确使用'and if',就像这样:

@Query("select  t  from tablename t where 1=1 and if(:a='', 1=1,t.a =:a) ") 

1 个答案:

答案 0 :(得分:0)

在JPQL中没有if。

您可以尝试这样的事情:

select t from tablename t 
where (:a = '' or t.a = :a)

但是最好的方法是必须在Repo上分开方法:

// 1.

@Query("select t from tablename t where t.a =:a") 

// 2.

@Query("select t from tablename t") 

2。可以实现通用,因为它是一个简单的findAll