【问题标题】:JdbcTemplate problems with nested queries嵌套查询的 JdbcTemplate 问题
【发布时间】:2011-11-09 00:47:30
【问题描述】:

我正在尝试将嵌套查询与 JdbcTemplate 一起使用,但发现了问题,在我看来它不支持嵌套查询。对吗?或者我需要改变什么?

所以,我调用

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

在 oracle 中给出结果,但在

中失败

org.springframework.jdbc.InvalidResultSetAccessException: PreparedStatementCallback; SQL 的 ResultSet 访问无效 [select sq.name as name from (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) like upper('?')];嵌套异常是 java.sql.SQLException: Invalid column index

已编辑

request 是一个简单的 String 对象,它实际上是您在异常消息中看到的 sql。在这种情况下,eturn 对象没有任何问题,因为我将其留空(用于测试我们的姿势)

但只是为了让您确定它是:

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

【问题讨论】:

  • 什么是request?它是什么类型的对象?

标签: java jdbc jdbctemplate


【解决方案1】:

尝试将upper('?') 更改为upper(?)。通过将? 放在引号中,数据库不会意识到您正在处理参数。

【讨论】:

  • 好的,我会尝试,但更简单的查询可以使用 upper('?')
猜你喜欢
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-05
  • 1970-01-01
  • 2022-11-10
  • 2010-10-17
  • 1970-01-01
相关资源
最近更新 更多