当参数可能为空时获取记录

fetch records when parameters may be null

我有包含开始日期、结束日期的搜索表单,这是强制性的,然后我们有 updatedBy 和非强制性的状态,我已经为此编写了 JPA 查询

select c from Entity c 
where c.status=:status 
  and c.updatedBy=:updatedBy 
  and c.startDate>=:startDate 
  and c.endDate:<= c.endDate

当非必填字段中的值为 null 时,此查询返回错误,如果 serach 参数包含 null 值,我需要帮助重新编写查询以获取结果,在我的情况下 updatedBy 和 status 可能为 null。

for none 必填字段使用 coalesce 不 return null 或修改实体以接受它们的 null(首选第一个解决方案)例如,如果 Status 为 nullable 使用:

select c.StartDate, c.EndDate, c.Id, c.UpdatedBy , coalesce(c.Status,0) 
from Entity c where c.status=:status and c.updatedBy=:updatedBy 
and c.startDate>=:startDate and c.endDate:<= c.endDate
Order by c.StartDate, c.EndDate, c.Id, c.UpdatedBy , coalesce(c.Status,0)