Я использую SimpleJdbcTemplate и MapSqlParameterSource следующим образом:
MapSqlParameterSource parameterSource = new MapSqlParameterSource();
parameterSource.addValue("typeId", typeId, Types.BIGINT);
List<Long> ids = _jdbcTemplate.query(_selectIdByParameters, new EntityIdRowMapper(), parameterSource);
Когда typeId
(который является Long
) равен null
, тогда запрос выглядит следующим образом:
SELECT id FROM XXX WHERE typeId = null
тогда как я ожидаю, что он сгенерирует
SELECT id FROM XXX WHERE typeId IS NULL
Я сообщил об этой проблеме, и ответ был:
Вам нужно будет предоставить соответствующую инструкцию SQL на основе ваших параметров запроса.
и, как следствие, мой код усеян нулевыми проверками.
Есть ли более элегантный способ обработки нулевых параметров, отправленных на SimpleJdbcTemplate
?