gpt4 book ai didi

postgresql - 无法在 jooq 插入中设置 UDT,始终收到 StackOverflowError

转载 作者:行者123 更新时间:2023-11-29 13:19:04 25 4
gpt4 key购买 nike

SQL 非常简单:

CREATE TYPE audit_fields AS (
creation_time_ms BIGINT
);

CREATE TABLE users(
...
audit AUDIT_FIELDS NOT NULL
);

这是我尝试过的两种方法:

UsersRecord getRecord() {
return new UsersRecord()
.setSomeField(...)
.setOtherField(...)
.setAudit(new AuditFieldsRecord(System.currentTimeMillis()));
}

create.insertInto(Tables.USERS)
.set(getRecord())
.execute();

还有,这个:

create.insertInto(Tables.USERS)
.set(getRecord())
.set(Tables.USERS.AUDIT, new AuditFieldsRecord(System.currentTimemillis()))
.execute();

我只是得到了一个StackOverflowError,下面的 block 在整个过程中重复(显然是一个无限递归):

at org.jooq.impl.UDTConstant.<init>(UDTConstant.java:62)
at org.jooq.impl.DSL.val(DSL.java:12781)
at org.jooq.impl.DSL.val(DSL.java:12732)
at org.jooq.impl.DSL.inline(DSL.java:12590)
at org.jooq.impl.UDTRecordImpl.toString(UDTRecordImpl.java:141)
at java.lang.String.valueOf(String.java:2994)
at org.jooq.impl.AbstractParam.name(AbstractParam.java:104)
at org.jooq.impl.AbstractParam.<init>(AbstractParam.java:78)
at org.jooq.impl.AbstractParam.<init>(AbstractParam.java:74)
at org.jooq.impl.UDTConstant.<init>(UDTConstant.java:62)
at org.jooq.impl.DSL.val(DSL.java:12781)
at org.jooq.impl.DSL.val(DSL.java:12732)
at org.jooq.impl.DSL.inline(DSL.java:12590)
at org.jooq.impl.UDTRecordImpl.toString(UDTRecordImpl.java:141)
at java.lang.String.valueOf(String.java:2994)
at org.jooq.impl.AbstractParam.name(AbstractParam.java:104)
at org.jooq.impl.AbstractParam.<init>(AbstractParam.java:78)
at org.jooq.impl.AbstractParam.<init>(AbstractParam.java:74)
at org.jooq.impl.UDTConstant.<init>(UDTConstant.java:62)
at org.jooq.impl.DSL.val(DSL.java:12781)
at org.jooq.impl.DSL.val(DSL.java:12732)
at org.jooq.impl.DSL.inline(DSL.java:12590)
at org.jooq.impl.UDTRecordImpl.toString(UDTRecordImpl.java:141)
at java.lang.String.valueOf(String.java:2994)
at org.jooq.impl.AbstractParam.name(AbstractParam.java:104)
at org.jooq.impl.AbstractParam.<init>(AbstractParam.java:78)
at org.jooq.impl.AbstractParam.<init>(AbstractParam.java:74)
at org.jooq.impl.UDTConstant.<init>(UDTConstant.java:62)

知道我做错了什么吗?

最佳答案

这是旧版本 Jooq 3.7.0 中存在的问题。对于使用该版本且无法轻松迁移到较新版本的项目,这个问题可能是一个起点,所以我不会投票关闭它(如果其他人认为合适,则要求关闭)。

升级到更高版本的 jooq 可以解决这个问题。

关于postgresql - 无法在 jooq 插入中设置 UDT,始终收到 StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44929429/

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