使用布尔参数查询Null或Not Null

时间:2018-04-03 15:25:41

标签: sql postgresql jpa spring-data

背景我需要一个查询,它将在给定一组参数的情况下返回所有已分配或未分配的作业。我既不控制数据库也不控制URL中的参数。目前,如果URL想要所有已分配的作业,则发送为true;如果要取消分配,则为false。在表格中,列分配了#39;如果已分配,则为具有ID的外键,如果未分配,则为null。 我的目标是

@Query(Select * from job j where j.location =:loc and j.assigned= :assigned) 
Public List<Job> getJobs(@Param("loc") String location,
                         @Param("assigned ") Boolean assigned);

当然,我可以根据assign是true还是false来创建多个查询。但它希望可以用一个动作来完成,而不是使用Postgres数据库fyi

1 个答案:

答案 0 :(得分:0)

CASE子句中使用WHERE语句:

@Query(Select * from job j where j.location =:loc and case when :assigned then j.assigned is not null else j.assigned is null end)

Testing