4

ここに私のDAOコードがあります

 this.calcRTRDetails = new SimpleJdbcCall(dataSource).withCatalogName("score_rtr").
                     withProcedureName("calc_rtr_dtls").declareParameters(
                        new SqlParameter("p_repy_track", Types.ARRAY)    
                      ).returningResultSet("p_track_dtls",new RowMapper<String>() {

                        @Override
                        public String mapRow(ResultSet rs, int arg1)
                                throws SQLException {
                            // TODO Auto-generated method stub
                            return rs.getString(1);
                        }
                    } );

次のエラーが表示されます

org.springframework.dao.InvalidDataAccessApiUsageException: Unable to determine the correct call signature - multiple procedures/functions/signatures for CALC_RTR_DTLS found [SCORE_RTR.SCORE.CALC_RTR_DTLS, SCORE_RTR.SCORE.CALC_RTR_DTLS]

その理由は何ですか??

4

1 に答える 1

7

オーバーロードされた Postgres 関数を呼び出そうとすると、非常によく似た問題が発生することがわかりました。Spring 3.2.3 での解決策は、withProcedureColumnMetaDataAccess() を呼び出すことでした。

ただし、パラメータを明示的に宣言してください。別の方法は、オーバーロードされた関数に別の名前を付けることです。

于 2014-03-19T15:26:55.367 に答える