1 回答

TA貢獻1785條經驗 獲得超4個贊
我剛剛設法弄清楚了,我想我必須自己回答,以防萬一它幫助別人......,事實證明,我最終設法通過只發送1個map作為參數來獲取參數,并在服務方法中設置IN值...此外,映射器現在正在返回 void,這意味著 mybatis 正在動態地將所有額外的 out 參數添加到映射中。我還對調用語句進行了一些更改,也許那里也有錯誤?
代碼的結尾如下:
//service call
public Map<String, Object> callProcedure(String param){
Map<String, Object> map = new HashMap<String, Object>();
Integer privilegesCount = 0;
map.put("p_id_grupo_familiar", Integer.valueOf(param));
asociadoMapper.callProcedure(map);
return map;
}
//mapper
@Select(value = AsociadoQueries.getDocumentoAsociadoCall)
@Options(statementType = StatementType.CALLABLE)
void callProcedure(Map<String,Object> params);
// Call statement
public static final String getDocumentoAsociadoCall = "{ CALL consultas_generales.get_detalle_cliente_gf(" +
"#{p_id_grupo_familiar, jdbcType=NUMERIC ,javaType=java.lang.Integer ,mode=IN}," +
"#{p_tipo_cliente, jdbcType=NUMERIC,javaType=java.lang.Integer ,mode=OUT,},"+
"#{p_codigo_cliente, jdbcType=NUMERIC ,javaType=java.lang.Integer ,mode=OUT},"+
"#{p_nombre_cliente, jdbcType=VARCHAR ,javaType=java.lang.String ,mode=OUT},"+
"#{p_cuit_cliente, jdbcType=VARCHAR ,javaType=java.lang.String ,mode=OUT},"+
"#{p_cuit_rp, jdbcType=VARCHAR ,javaType=java.lang.String ,mode=OUT},"+
"#{p_razon_social_rp, jdbcType=VARCHAR ,javaType=java.lang.String ,mode=OUT},"+
"#{p_domicilio, jdbcType=VARCHAR ,javaType=java.lang.String ,mode=OUT}"+
")}";
添加回答
舉報