[英]Spring RowMapper is being ignored
我這樣調用我的存儲過程:
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
.returningResultSet("LookupResponse", new LookupMapper())
.withProcedureName(lookupProcedureName);
並傳遞一些參數:
SqlParameterSource in = new MapSqlParameterSource()
.addValue("id", request.getId())
.addValue("Username", userName)
行映射器的代碼:
public class LookupMapper implements RowMapper<LookupResponse> {
@Override
public LookupResponse mapRow(ResultSet rs, int i) throws SQLException {
LookupResponse lookupResponse = new LookupResponse();
lookupResponse.setDeviceId(rs.getInt("DeviceId"));
lookupResponse.setApplicationId(rs.getInt("AppId"));
return lookupResponse;
}
}
然后我打電話給數據庫:
Map<String, Object> out = jdbcCall.execute(in);
我在返回的 map 中看到未映射的鍵值對,當我這樣做時:
(Collection<LookupResponse>) out.get("LookupResponse");
它返回 null。
我的行映射響應沒有鍵。 相同類型的代碼適用於另一個存儲過程......我不明白可能是什么原因。 控制台中沒有異常,只是忽略了 rowMapper。 請幫助我理解。
根據以下更改Map<String, Object> out = jdbcCall.execute(in);
到Map<String, Object> outMap = jdbcCall.withReturnValue().execute(in);
我有同樣的問題。 執行此操作以排除故障
System.out.println(out);
確保字符串以“LookupResponse”開頭
{LookupResponse=[...
如果不相應地更換它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.