6
Mam następujący kod w wiosennej Dao, który działa dobrze -Jak przekazać wiele nazwanych parametrów do Spring JdbcTemplate?
Object args[] = { userId, restaurantId };
int userOrderCount = getJdbcTemplate()
.queryForInt(
"SELECT COUNT(orderid) FROM orders WHERE useridfk_order = ? AND restaurantidfk_order = ?",
args
);
Jednak jeśli zdecydujesz się skorzystać NamedParameters na moje pytanie w następujący sposób -
int userOrderCount = getNamedParameterJdbcTemplate()
.queryForInt(
"SELECT COUNT(orderid) FROM orders WHERE useridfk_order = :userId AND restaurantidfk_order = :restaurantId",
new MapSqlParameterSource(":restaurantId", restaurantId)
.addValue(":userId", userId)
);
otrzymuję ten wyjątek -
org.springframework.dao.InvalidDataAccessApiUsageException: No value supplied for the SQL parameter 'userId': No value registered for key 'userId'.
Znam złote powiedzenie "Nie naprawiaj tego, jeśli nie jest zepsute".
Ale wciąż nie mogę przestać się zastanawiać, dlaczego tak się dzieje?
O cholera! Taki głupi błąd :-( –
(+1) poprawiono: aby było czytelniej dla czytelnika: nie możesz mieć tego ':' przed błędami parametrów mapy – Ralph
dla narodów. – erimerturk