我的插入查询返回已插入记录的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 如果没有预期结果,则返回结果。
我在网上找到了上面的示例,并期望它能正常工作。知道我应该做些什么吗?
答案 0 :(得分:0)
需要更改为:
PreparedStatement ps = connection.prepareStatement(youSQL, new String[]{"id"});
其中id
是主键列名称
并删除select id from tmpproperty limit 1;
,更新查询就足够了。