J'utilise SimpleJdbcTemplate et MapSqlParameterSource de la manière que vous avez choisi:paramètres SimpleJdbcTemplate et null
MapSqlParameterSource parameterSource = new MapSqlParameterSource();
parameterSource.addValue("typeId", typeId, Types.BIGINT);
List<Long> ids = _jdbcTemplate.query(_selectIdByParameters, new EntityIdRowMapper(), parameterSource);
Lorsque typeId
(qui est un Long
) est null
, la requête regarde de la façon suivante:
SELECT id FROM XXX WHERE typeId = null
alors que je pense qu'elle doit générer
SELECT id FROM XXX WHERE typeId IS NULL
J'ai reported this issue et la réponse était que
Vous devrez fournir l'instruction SQL appropriée en fonction de vos paramètres de requête.
et par conséquent mon code est jonché de vérifications nuls.
Existe-t-il une manière plus élégante de gérer les paramètres null envoyés au SimpleJdbcTemplate
?
Cela fonctionnera-t-il si namedparameterjdbctemplate est utilisé à la place de simplejdbctemplate? –