Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javajdbc如何处理带有返回语句的更新查询_Java_Sql_Postgresql_Jdbc_Jdbctemplate - Fatal编程技术网

javajdbc如何处理带有返回语句的更新查询

javajdbc如何处理带有返回语句的更新查询,java,sql,postgresql,jdbc,jdbctemplate,Java,Sql,Postgresql,Jdbc,Jdbctemplate,我有一个简单的sql查询,它将版本增加1,并返回postgresql中的当前值,例如: UPDATE table SET version = version + 1 where id = 'XXX' RETURNING version 但是,我无法在jdbcTemplate.update语句中使用它: int version = jdbcTemplate.update(sqlString, new Object[] {id}); 引发异常: 当没有预期结果时返回结果 org.springf

我有一个简单的sql查询,它将版本增加1,并返回postgresql中的当前值,例如:

UPDATE table SET version = version + 1 where id = 'XXX' RETURNING version
但是,我无法在jdbcTemplate.update语句中使用它:

int version = jdbcTemplate.update(sqlString, new Object[] {id}); 
引发异常:

当没有预期结果时返回结果

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [UPDATE table SET version = version + 1 where id = ? RETURNING version]; A result was returned when none was expected.; nested exception is org.postgresql.util.PSQLException: A result was returned when none was expected.

使用返回语句的正确方法是什么?

我找到了解决方案。我没有使用jdbcTemplate.update,而是使用jdbcTemplate.query并将number转换为int来获取version的值。谢谢大家

    Number number = jdbcTemplate.queryForObject(sqlString, new Object[] {id}, Integer.class);
    int version;

    version = number != null ? number.intValue() : 0;

它抛出了什么异常!org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework.dao.DataIntegrityViolationException:PreparedStatementCallback;SQL[更新表集版本=版本+1,其中id=?返回版本];当没有预期结果时返回了结果。;嵌套的异常为org.postgresql.util.PSQLException:当预期没有结果时返回了一个结果。请发布一个