gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:46:21 24 4
gpt4 key购买 nike

使用这个:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com