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
。处理这种查询最惯用的方法是什么?
有两种选择:
- 将 SQL 查询重写为如下内容:
SELECT * FROM mytable
WHERE (:myVar is null and some_column is null) or some_column = :myVar
- 使用 JDBI templating 动态重写查询
让我们进行一个简单的 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
。处理这种查询最惯用的方法是什么?
有两种选择:
- 将 SQL 查询重写为如下内容:
SELECT * FROM mytable
WHERE (:myVar is null and some_column is null) or some_column = :myVar
- 使用 JDBI templating 动态重写查询