Apache DBUtils QueryRunner在insert中从错误的列返回id

时间:2017-08-18 07:56:15

标签: java apache-commons-dbutils

我正在使用Apache DBUtils

Long rowId = queryRunner.insert(sql, new ScalarHandler<Long>(), params);

我的表架构是

CREATE TABLE abc
(
    userid bigint,
    api_key text,
    key_id integer NOT NULL DEFAULT nextval('api_keys_key_id_seq'::regclass),
    CONSTRAINT api_keys_pkey PRIMARY KEY (key_id),
    CONSTRAINT userid_fkey FOREIGN KEY (userid)
    REFERENCES public.users (userid) MATCH SIMPLE
    ON UPDATE NO ACTION ON DELETE NO ACTION
)

问题rowId来自userid列,其中表的主键是key_id,我希望插入查询的返回ID来自key_id列。

1 个答案:

答案 0 :(得分:0)

我遵循的解决方案是再次创建表格,localhost作为第一列。以这种方式返回key_id以响应插入查询。可能有一个选项来配置,但我无法找到。

我知道再次创建一个表格并不是一个好办法但是有人找到答案请分享。