JdbcTemplate在插入时返回UUID“在没有预期结果时返回了结果。”

时间:2019-07-05 15:32:10

标签: java spring spring-boot spring-jdbc

我的插入查询返回已插入记录的UUID。下面是相关代码。

KeyHolder keyHolder = new GeneratedKeyHolder();

template.update(connection -> {
    PreparedStatement ps = connection.prepareStatement(insertQuery);
    ps.setString(1, stateName);
    ps.setString(2, stateAb);
    ps.setObject(3, propertyDetailsObject);


    return ps;
}, keyHolder);

我正在使用以select id from tmpproperty limit 1;结尾的长CTE查询,在这里我已经简化了一些内容以便于阅读。

但是我得到了以下异常

  

org.springframework.dao.DataIntegrityViolationException:   PreparedStatementCallback;如果没有结果则返回结果   预期。;嵌套的异常是org.postgresql.util.PSQLException:A   如果没有预期结果,则返回结果。

我在网上找到了上面的示例,并期望它能正常工作。知道我应该做些什么吗?

1 个答案:

答案 0 :(得分:0)

需要更改为:

PreparedStatement ps =  connection.prepareStatement(youSQL, new String[]{"id"});

其中id是主键列名称

并删除select id from tmpproperty limit 1;,更新查询就足够了。