6
मैं एक स्प्रिंग दाव में कोड जो सिर्फ ठीक काम करता है निम्नलिखित है -स्प्रिंग जेडीबीसी टेम्पलेट में एकाधिक नामित पैरामीटर कैसे पास करें?
Object args[] = { userId, restaurantId };
int userOrderCount = getJdbcTemplate()
.queryForInt(
"SELECT COUNT(orderid) FROM orders WHERE useridfk_order = ? AND restaurantidfk_order = ?",
args
);
लेकिन अगर मैं इस प्रकार अपनी क्वेरी के लिए NamedParameters उपयोग करने का निर्णय -
int userOrderCount = getNamedParameterJdbcTemplate()
.queryForInt(
"SELECT COUNT(orderid) FROM orders WHERE useridfk_order = :userId AND restaurantidfk_order = :restaurantId",
new MapSqlParameterSource(":restaurantId", restaurantId)
.addValue(":userId", userId)
);
मैं इस अपवाद हो रही है -
org.springframework.dao.InvalidDataAccessApiUsageException: No value supplied for the SQL parameter 'userId': No value registered for key 'userId'.
मुझे सुनहरा कहा गया है "अगर इसे टूटा नहीं है तो इसे ठीक न करें"।
लेकिन फिर भी, मैं मदद नहीं कर सकता लेकिन आश्चर्य हो रहा है कि यह क्यों हो रहा है?
अरे अरे! इस तरह की मूर्खतापूर्ण गलती :-( –
(+1) सही: पाठक के लिए इसे और अधिक स्पष्ट बनाने के लिए: आपके पास मानचित्र पैरामीटर – Ralph
लोगों के लिए गलतियों के सामने ''' नहीं होना चाहिए। – erimerturk