Передача необязательного параметра в JdbcTemplate - PullRequest
0 голосов
/ 31 декабря 2018

У меня проблема с 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.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я смог решить эту проблему, изменив запрос.

В моем случае я использовал IBM solidDb, а исправление содержит функцию IFNULL.

AND IFNULL(CONTENT,'') = IFNULL(?,'')
0 голосов
/ 31 декабря 2018

Используйте функцию Oracle NVL для поддержки необязательного параметра:

 WHERE CONTENT = NVL(?, CONTENT) "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...