检查 NamedQuery 中的空参数
Check null parameter in NamedQuery
当列是数字类型时,我通常在我的命名查询中使用这个参数验证:
(-1 = ?1 OR column = ?1)
但是使用 between 的日期过滤器我无法进行相同类型的验证:
(p.date between ?1 and ?2)
我找到的解决方案是添加一个新参数来检查日期是否为空:
(dateInitial == null || dateFinal == null)
在命名查询中:
(?3 = true OR p.date between ?1 and ?2)
- 有没有不需要添加其他参数的解决方案?使用现有参数。
而不是
(p.date between ?1 and ?2)
你可以试试
(p.date < ?1 or ?1 is null) and (p.date > ?2 or ?2 is null)
当列是数字类型时,我通常在我的命名查询中使用这个参数验证:
(-1 = ?1 OR column = ?1)
但是使用 between 的日期过滤器我无法进行相同类型的验证:
(p.date between ?1 and ?2)
我找到的解决方案是添加一个新参数来检查日期是否为空:
(dateInitial == null || dateFinal == null)
在命名查询中:
(?3 = true OR p.date between ?1 and ?2)
- 有没有不需要添加其他参数的解决方案?使用现有参数。
而不是
(p.date between ?1 and ?2)
你可以试试
(p.date < ?1 or ?1 is null) and (p.date > ?2 or ?2 is null)