我目前使用JOOQ的可更新记录如下模式插入:
MyRecord myRecord = new MyRecord();
try (var txn = tm.beginWriteTransaction()) {
myRecord.setA("value");
myRecord.insert();
txn.commit();
}
在txn之后。commit()
,我希望使用数据库中的值更新myRecord
,例如,如果表具有自动递增的列id
,myRecord。getId()
将返回其值。
如果列a
具有唯一约束,则当违反该约束时,txn.commit()
将抛出DataAccessExc0019
。我的问题是可以告诉JOOQ不要抛出异常,但仍然用现有的值更新记录吗?
有一个挂起的功能请求,需要将UPSERT
功能添加到updateablerecord
:#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();
}
我的例子如下: Person是一个简单的实体,有3个字段“Long id、String name、intger age”,并且映射到相应的Person表,上面有3列) 有没有办法通过使用@Query 重要的 请帮帮忙。
我试图在jOOQ 3.4.2中使用UpdateableRecords插入一个新记录。该模式非常简洁且易于使用,除了将空值读取为无值,并忽略默认值或生成的索引。我如何使用UpdateableRecord来执行一个尊重默认值和生成索引的插入? 这是我的桌子: 注意我的主键和默认值。下面是我的jOOQ代码: 但是当我运行这个程序时,我会在“org\u person\u id”列中得到一个错误。 我注意到
我希望用同一行中其他列的相关值更新列。我正在更新的列是唯一的,如果执行此操作,我有时会出现重复的键错误。我希望忽略这些错误,只更新其中一条记录,忽略其他记录。 我的查询如下所示: 现在,在Fname和Lname两行匹配的情况下,我只希望更新第一个记录Coolname。 谢谢(MS SQL Server)
问题内容: 我遵循“ 是否可以编写数据类型转换器来处理postgresJSON列”中的答案? 实现nodeObject转换器。 然后,我尝试使用可更新的记录来插入一条记录,但出现了 “ org.jooq.exception.SQLDialectNotSupportedException:方言POSTGRES不支持类型为org.postgresql.util.PGobject的类”。 我该如何解决?
问题内容: 我正在使用PHP。 请问什么是将新记录插入具有唯一字段的数据库的正确方法。我正在批量插入很多记录,我只想插入新记录,并且我不想重复条目有任何错误。 有没有唯一方法可以首先进行SELECT并查看条目是否在INSERT之前已经存在-并且仅在SELECT不返回任何记录时才插入INSERT?我希望不是。 我想以某种方式告诉MySQL忽略这些插入而没有任何错误。 谢谢 问题答案: 如果在重复记录