Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jooq在postgres中自动生成主键_Java_Postgresql_Jooq - Fatal编程技术网

Java 使用jooq在postgres中自动生成主键

Java 使用jooq在postgres中自动生成主键,java,postgresql,jooq,Java,Postgresql,Jooq,我正在使用jooq生成的dao对表执行创建操作。 该表具有类型为bigserial的主键“id”,默认约束为NOTNULL 创建表public.book( id bigserial不为空, 作者varchar(64) 约束书\u主键(id) ) 我说用jooq创建一个记录 Book b=新书(); b、 作者(“埃里克”); BookDao bd=新BookDao(jooqConfiguration); bd.插入(b); 这会引发id为null的约束冲突异常 Book b=新书(); b、

我正在使用jooq生成的dao对表执行创建操作。 该表具有类型为bigserial的主键“id”,默认约束为NOTNULL

创建表public.book(
id bigserial不为空,
作者varchar(64)
约束书\u主键(id)
)
我说用jooq创建一个记录

Book b=新书();
b、 作者(“埃里克”);
BookDao bd=新BookDao(jooqConfiguration);
bd.插入(b);
这会引发id为null的约束冲突异常

Book b=新书();
b、 setId(25);
b、 作者(“埃里克”);
BookDao bd=新BookDao(jooqConfiguration);
bd.插入(b);
我没有得到异常,但postgres不会自动生成值

位于的postgres文档说“在INSERT中省略序列列,或指定默认关键字”

如何配置jooq生成的dao以省略此列或使用默认值


编辑-我正在使用jooq版本3.3.2和postgres 8.4。(最终的目标是aws红移。所以在postgres 8.4上进行原型设计)。

这个生成的dao没有正确处理默认值的问题已经出现在jooq的github问题列表中

它在3.4.0中固定。迁移到3.4.0为我解决了这个问题


回答问题,以便其他人可以在需要时找到。

只需补充说明:您的链接不是“postgres文档”。官方手册在这里:为了确保您使用的是最新的jOOQ版本(3.4.0)?使用nextval(),检查手册:@FrankHeikens-这意味着为创建的每个对象调用2次db,并且必须为多个对象执行此操作。没有办法告诉jooq db将生成所需的值吗?@LukasEder-我使用的是jooq版本3.3.2,它是mvn存储库和postgres 8.4上的最新版本。我应该迁移到jooq 3.4.0吗?最后的目标是aws红移。所以在postgres 8.4上进行原型制作。你比我快:-)但我认为某个地方有问题,谢谢你查找