Tôi đang sử dụng SimpleJdbcTemplate và MapSqlParameterSource theo cách folowing:SimpleJdbcTemplate và null thông số
MapSqlParameterSource parameterSource = new MapSqlParameterSource();
parameterSource.addValue("typeId", typeId, Types.BIGINT);
List<Long> ids = _jdbcTemplate.query(_selectIdByParameters, new EntityIdRowMapper(), parameterSource);
Khi typeId
(mà là một Long
) là null
, sau đó truy vấn trông theo cách sau:
SELECT id FROM XXX WHERE typeId = null
trong khi tôi hy vọng nó sẽ tạo ra
SELECT id FROM XXX WHERE typeId IS NULL
Tôi đã reported this issue và câu trả lời là
Bạn sẽ phải cung cấp câu lệnh SQL thích hợp dựa trên các tham số truy vấn của mình.
và hậu quả là mã của tôi được phân phối bằng séc rỗng.
Có cách nào thanh lịch hơn để xử lý các tham số null được gửi đến SimpleJdbcTemplate
không?
Nó có hoạt động không, nếu namedparameterjdbctemplate được sử dụng thay vì simplejdbctemplate? –