【发布时间】:2018-02-23 00:04:52
【问题描述】:
我正在尝试使用 jooq 使用 batchStore 插入记录。我需要知道我们如何更新唯一约束的记录,目前它正在抛出 记录已存在的异常
SQL Error [23505]: ERROR: duplicate key value violates unique constraint
下面是代码
DSLContext create = getDSLContext();
List<UserRecord> userRecordList = new ArrayList<>();
for (Users user : model.getUsers()) {
User record = create.newRecord(user);
userRecordList.add(record);
}
create.batchStore(userRecordList).execute();
目前插入记录正常,但是当基于唯一约束发现重复记录时,它应该更新记录
【问题讨论】:
-
确实,
batchStore()命令不执行 SQLMERGE语句语义,而是在每条记录上调用UpdatableRecord.store()的快捷方式,批量运行store()命令。有一个改进文档的功能请求:github.com/jOOQ/jOOQ/issues/6584
标签: java postgresql jooq