Я использую 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
?