gpt4 book ai didi

java - 使用 JOOQ 插入可更新记录时如何忽略重复键错误

转载 作者:行者123 更新时间:2023-12-01 17:36:43 25 4
gpt4 key购买 nike

我目前正在使用 JOOQ 以及遵循此插入模式的可更新记录:

MyRecord myRecord = new MyRecord();
try (var txn = tm.beginWriteTransaction()) {
myRecord.setA("value");
myRecord.insert();
txn.commit();
}

txn.commit()之后,我希望用数据库中的值更新myRecord,例如如果表有自动递增列 idmyRecord.getId() 将返回其值。

如果列a具有唯一约束,则违反该约束时txn.commit()将抛出DataAccessException。我的问题是可以告诉 JOOQ 不要抛出异常但仍然使用现有值更新记录吗?

最佳答案

有一个待处理的功能请求,要求将 UPSERT 功能添加到 UpdatableRecord:#1234 .

同时,您可以将记录嵌入到普通的 SQL 查询中:

MyRecord myRecord = new MyRecord();
try (var txn = tm.beginWriteTransaction()) {
myRecord.setA("value");
myRecord = dsl
.insertInto(MY_TABLE)
.set(myRecord)
.onDuplicateKeyUpdate()
.set(myRecord)
.returning()
.fetch();
txn.commit();
}

关于java - 使用 JOOQ 插入可更新记录时如何忽略重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61022357/

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