gpt4 book ai didi

Java JDBC 如何使用 RETURNING 语句处理更新查询

转载 作者:行者123 更新时间:2023-12-02 11:09:35 24 4
gpt4 key购买 nike

我有一个简单的 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.

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

最佳答案

我已经找到解决办法了。我使用 jdbcTemplate.query 并将数字转换为 int 来获取版本值,而不是 jdbcTemplate.update 。谢谢大家。

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

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

关于Java JDBC 如何使用 RETURNING 语句处理更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com