使用jooq生成InsertSelect

时间:2013-06-19 06:21:34

标签: java sql jooq

我想在Factory中使用这样的函数:

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()

如何实施,Lukas?

我想得到像这样的SQL:

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

1 个答案:

答案 0 :(得分:2)

你是对的。从jOOQ 3.0开始,目前存在API设计缺陷,无法将INSERT .. SELECT与jOOQ中的ON DUPLICATE KEY UPDATE / IGNORE子句相结合。我已就此问题注册了#2529

类似的漏洞已经注册为#2123,其中ON DUPLICATE KEY UPDATE / IGNORE无法与RETURNING条款合并。

目前还没有针对此问题的解决方法,我担心。