微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-INSERT..RETURNING在JOOQ中不起作用

我有一个MariaDB数据库,正在尝试在表用户中插入一行.它具有生成的ID,我想在插入后获取它.我看过this,但对我不起作用:

public Integer addNewUser(String name) {
    Record record = context.insertInto(table("users"), field("name"))
        .values(name)
        .returning(field("id"))
        .fetchOne();
    return record.into(Integer.class);
}

插入新行,但记录始终为空.我没有使用JOOQ代码生成.

解决方法:

这是jOOQ 3.9:https://github.com/jOOQ/jOOQ/issues/2943中的已知限制

当前,在使用纯sql时,您无法在jOOQ中使用RETURNING子句,因为jOOQ需要知道标识列名称以绑定到JDBC(在大多数数据库中).不幸的是,仅将ID列传递给RETURNING子句是不够的,因为不能保证这就是标识列.您还可以将几列传递给RETURNING子句,以防万一jOOQ不知道哪一列是标识列.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐