2

我想在工厂中实现这样的功能:

public final <R extends Record> InsertValuesStep<R> insertInto(Table<R> into, Collection<? extends   Field<?>> fields, Select<?> select) {
    return new org.jooq.impl.InsertSelectQueryImpl<R>(this, into, fields, select);
}

但我无法访问 org.jooq.impl.InsertSelectQueryImpl,我想使用 InsertOnDuplicateStep 来设置 onDuplicateKeyUpdate()

卢卡斯,如何实现它?

我想得到这样的sql:

insert ignore into tb1(field1,field2) select  value1,value2 from tb2 
4

1 回答 1

2

你是对的。从 jOOQ 3.0 开始,当前存在一个 API 设计缺陷,阻止您INSERT .. SELECT与 jOOQ 中的ON DUPLICATE KEY UPDATE / IGNORE子句组合。我已经为此问题注册了#2529 。

一个类似的缺陷已被注册为#2123,其中ON DUPLICATE KEY UPDATE / IGNORE不能与RETURNING子句结合使用。

恐怕目前没有解决此问题的方法。

于 2013-06-19T20:28:12.470 回答