簡體   English   中英

Spring RowMapper 被忽略

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM