我有一个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 3.9:https://github.com/jOOQ/jOOQ/issues/2943中的已知限制
当前,在使用纯sql时,您无法在jOOQ中使用RETURNING子句,因为jOOQ需要知道标识列名称以绑定到JDBC(在大多数数据库中).不幸的是,仅将ID列传递给RETURNING子句是不够的,因为不能保证这就是标识列.您还可以将几列传递给RETURNING子句,以防万一jOOQ不知道哪一列是标识列.