0
JOOQ提供做以下的非常好的能力的自動生成的列值:JOOQ獲得在使用記錄插入它,沒有返回
TableRecord tableRecord = dsl.newRecord(TABLE);
tableRecord.setSomeParam(...);
tableRecord.insert();
在這一點上應該記錄在表中插入。
我們可以這樣做:
tableRecord.getSomeParam(); // will return value above
然而,這樣的:
tableRecord.getId(); // NULL
始終返回null
。這是設計嗎?我們是否必須使用returning(TABLE.ID)
來獲取自動生成的ID值而不是Record
?如果查詢在事務性上下文中執行,這種行爲是否有所不同?
編輯:
我使用PostgreSQL 9.4.10,而我的表定義是類似以下內容:
CREATE TABLE item
(
id bigserial NOT NULL,
name character varying(245),
some_uuid uuid NOT NULL DEFAULT uuid_generate_v4(),
CONSTRAINT item_pkey PRIMARY KEY (id),
CONSTRAINT item_item_uuid_key UNIQUE (item_uuid)
)
其他信息:
- PostgreSQL驅動: 「postgresql:postgresql> 9.1-901.jdbc4」
- JOOQ versi於:
3.8.6
1)你使用的數據庫是什麼? 2)你的桌子的DDL是什麼? –
埃德爾先生您好:我剛剛更新了問題並回答了您的問題。謝謝你的時間! – user991710
有趣。這應該是現成的,但我不能以這種方式重現它...你使用什麼jOOQ版本?什麼是JDBC驅動程序和版本?你有沒有通過jOOQ進行調試,看看jOOQ是否在某個地方出了問題? –