Java JDBI `SqlQuery` 对 SQL `=` AND SQL `IS NULL` 有一个表达式的惯用支持吗?

Does Java JDBI `SqlQuery` have idiomatic support for SQL `=` AND SQL `IS NULL` with one expression?

让我们进行一个简单的 SELECT 查询:

@SqlQuery("SELECT * FROM mytable WHERE some_column = :myVar")
List<MyObjects> getBySomeColumn(String myVar);

我想知道是否有类似上面的内容,但会自动类似地处理 IS NULL=

@SqlQuery("SELECT * FROM mytable WHERE some_column <MAGIC_HERE> :myVar")
List<MyObjects> getBySomeColumn(String myVar);

...这将 运行 要么:

SELECT * FROM mytable WHERE some_column IS NULL

SELECT * FROM mytable WHERE some_column = :myVar

... 取决于 myVar 是否为 null。处理这种查询最惯用的方法是什么?

有两种选择:

  1. 将 SQL 查询重写为如下内容:
SELECT * FROM mytable
WHERE (:myVar is null and some_column is null) or some_column = :myVar
  1. 使用 JDBI templating 动态重写查询