spring jdbctemplate GeneratedKeyHolder 出 multiple keys

代码如下:

    long saveOne(PreparedStatementCreator creator) {
        jdbcTemplate.update(creator, keyHolder);
        return keyHolder.getKey().longValue();
    }

数据库是 mysql.
执行的时候大部分情况都是正确的,但是老是会不定时的爆出 :
The getKey method should only be used when a single key is returned. The current key entry contains multiple keys : [{GENERATED_KEY=371363}, {GENERATED_KEY=371362}]

看源码肯定是 GeneratedKeyHolder 的问题,
我网上找到的链接这么说

但是我还是不知道该怎么把我现在的问题改掉,返回多个key的时候,我改如何处理呢,GeneratedKeyHolder 中,size 超过1就会返回这个异常,导致我的代码执行失败。

系统已经正常运行好久了,较着急,希望大神能给我指点一下

阅读 6.1k
1 个回答

GeneratedKeyHolder 改成在方法内部定义,你这个一般是多线程情况下会出现的异常

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进