java - JOOQ - getPrimaryKey()、getIdentity() 返回 null

标签 java jooq

使用这个:

System.out.println("PRIMARY KEY: " + DSL.table(DSL.name(tableName)).getPrimaryKey());

返回 null :/(也尝试过 getIdentity())

在调用 getPrimaryKey 之前,我执行所有查询:

CreateTableColumnStep table = ctx.createTable(tableName).column("id", INTEGER.identity(true));
table.constraints(DSL.constraint("pk_" + tableName).primaryKey("id"));

output of this in text is: create table filetest(id integer primary key autoincrement not null, Meno varchar(21) null, Priezvisko varchar(24) null, Vek int null);

所以有“id”主键...不明白。

还尝试过: ctx.meta(DSL.table("tableName")).getPrimaryKeys() 或 ctx.meta(DSL.tableByName("tableName")...返回空列表

最佳答案

returning null :/ (also tried getIdentity())

当您调用DSL.table(Name)时,您正在动态创建表元数据。您提供的唯一元数据是(限定的)表名称。您没有提供任何列信息,更不用说约束信息,因此您不能真正期望 jOOQ 神奇地“知道”某个地方应该有一个主键。

before call getPrimaryKey I executing all query(s):

在查询主键之前是否创建同名的表并不重要。据 jOOQ 所知,您创建的表元信息是一个有名称且没有列/约束的表。

Also tried: ctx.meta(DSL.table("tableName")).getPrimaryKeys() or ctx.meta(DSL.tableByName("tableName")... returns me empty list

我明白这看起来多么令人困惑。与调用 ctx.meta()(这可能是您在这里需要的)然后查询表相反,ctx.meta(Table...) 只是包装参数表的元信息位于org.jooq.Meta中,无需连接到数据库。

关于java - JOOQ - getPrimaryKey()、getIdentity() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54770470/

相关文章:

java - 用于在音频文件中转录语音的开源软件

Java 等待 JFrame 完成

java - Flash发送的未知数据包

sql - 如何在jOOQ中获取连接表结果?

java - 找出 JOOQ 函数依赖哪些表

java - 动态添加新列表到 map

java - 如何使用java在不严格的HTML中进行搜索?

java - 如何使用 jOOQ 的动态查询实现按字段值排序

spring - Jooq、Spring 和 BoneCP 连接关闭两次错误

java - 访问 H2 数据库架构