Java JDBC 如何使用 RETURNING 语句处理更新查询
Java JDBC How to Handle Update Query with RETURNING Statement
我有一个简单的 sql 查询,它将版本增加 1 和 returns postgresql 中的当前值,例如:
UPDATE table SET version = version + 1 where id = 'XXX' RETURNING version
但是我无法在 jdbcTemplate.update 语句中使用它:
int version = jdbcTemplate.update(sqlString, new Object[] {id});
抛出异常:
预期 none 时返回结果
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.
RETURNING 语句的正确使用方法是什么?
我找到了解决办法。而不是 jdbcTemplate.update 我使用 jdbcTemplate.query 并将数字转换为 int 以获得版本的值。谢谢大家
Number number = jdbcTemplate.queryForObject(sqlString, new Object[] {id}, Integer.class);
int version;
version = number != null ? number.intValue() : 0;
我有一个简单的 sql 查询,它将版本增加 1 和 returns postgresql 中的当前值,例如:
UPDATE table SET version = version + 1 where id = 'XXX' RETURNING version
但是我无法在 jdbcTemplate.update 语句中使用它:
int version = jdbcTemplate.update(sqlString, new Object[] {id});
抛出异常:
预期 none 时返回结果
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.
RETURNING 语句的正确使用方法是什么?
我找到了解决办法。而不是 jdbcTemplate.update 我使用 jdbcTemplate.query 并将数字转换为 int 以获得版本的值。谢谢大家
Number number = jdbcTemplate.queryForObject(sqlString, new Object[] {id}, Integer.class);
int version;
version = number != null ? number.intValue() : 0;