将可选参数传递给JdbcTemplate

问题描述 投票:0回答:2

在使用null引用传递参数对象时,我遇到了JdbcTemplate的问题。

鉴于我有以下测试数据:

jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (1,'TEST')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (2,'TEST_2')");
jdbcTemplate.execute("INSERT INTO TEST_TABLE VALUES (3, NULL)");

以下代码不会检索任何内容:

String contentArg = null;
List<Entity> entityList_3 = jdbcTemplate.query("SELECT * FROM TEST_TABLE WHERE CONTENT = ?", new BeanPropertyRowMapper<>(Entity.class), contentArg);

有没有办法解决这个问题,只需使用JdbcTemplate。

java spring-jdbc
2个回答
0
投票

使用Oracle NVL函数支持可选参数:

 WHERE CONTENT = NVL(?, CONTENT) "

0
投票

我已经能够通过修改查询来解决这个问题。

在我的情况下,我使用IBM solidDb并且修复包含使用IFNULL函数。

AND IFNULL(CONTENT,'') = IFNULL(?,'')
© www.soinside.com 2019 - 2024. All rights reserved.