0

JdbcTemplate でネストされたクエリを使用しようとしていますが、問題が見つかりました。ネストされたクエリをサポートしていないようです..私は正しいですか? または何を変更する必要がありますか?

だから、私は呼び出す

 getJdbcTemplate().query(request, new Object[]{name}...) 
 // request is query which you can see in error message

オラクルで結果が得られますが、失敗します

org.springframework.jdbc.InvalidResultSetAccessException: PreparedStatementCallback; SQL の無効な ResultSet アクセス[select sq.name from name (select t1.name as name from table1 t1 left outer join table2 t2 on t2.id = t1.fk_id where t1.name is not null ) sq where upper(name)アッパー('?')]のように。ネストされた例外は java.sql.SQLException: Invalid column index です

編集済み

request は単純な String オブジェクトであり、実際には例外メッセージに表示される sql です。私はそれを空のままにしたので、この状況ではリターンオブジェクトは問題になりません(私たちのポーズをテストするため)

ただし、ここにあることを確認してください。

List<MyObject> list = getJdbcTemplate().query(request, new Object[]{"Somename"}, new RowMapper() {
           public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
               return new MyObject();
           }
       });
4

1 に答える 1

2

に変更してみてupper('?')くださいupper(?)。引用符で囲むことにより?、データベースは、パラメーターを処理していることを認識しません。

于 2011-09-02T09:31:26.633 に答える