检查NamedQuery中的null参数

时间:2015-12-28 18:03:35

标签: hibernate hql named-query

当列是数字类型时,我通常在我的命名查询中使用此参数验证:

(-1 = ?1 OR column = ?1)

但是使用日期过滤器之间我不能进行相同类型的验证:

(p.date between ?1 and ?2)

我找到的解决方案是添加一个新参数,检查日期是否为空:

(dateInitial == null || dateFinal == null)

在命名查询中:

(?3 = true OR p.date between ?1 and ?2)
  • 是否有解决方案我不需要添加其他参数?使用现有参数。

1 个答案:

答案 0 :(得分:1)

而不是

(p.date between ?1 and ?2)

你可以尝试

(p.date < ?1 or ?1 is null) and (p.date > ?2 or ?2 is null)