Java 如何在j00q中引用Postgres约束?

Java 如何在j00q中引用Postgres约束?,java,postgresql,jooq,Java,Postgresql,Jooq,使用jooq 3.11.8,在onConflictOnConstraint中引用约束并不是特别容易发现的,文档也毫无帮助。我知道约束的名称,但是onConflictOnConstraint不接受字符串 具体而言: ctx.insertInto( TABLE, TABLE.ID, TABLE.FIELD1 ) .values( id, value ) .onConflictOnConstraint(/* WHAT GOES HERE? */) .doUpdate() .set(

使用jooq 3.11.8,在
onConflictOnConstraint
中引用约束并不是特别容易发现的,文档也毫无帮助。我知道约束的名称,但是
onConflictOnConstraint
不接受
字符串

具体而言:

ctx.insertInto(
  TABLE,
  TABLE.ID,
  TABLE.FIELD1
)
.values(
  id,
  value
)
.onConflictOnConstraint(/* WHAT GOES HERE? */)
.doUpdate()
.set(TABLE.FIELD1, value)
.execute();

我缺少什么?

此方法有3个重载:

  • :将其用于通过定义的约束,即DDL API
  • :与一起使用,这是一种创建临时标识符引用的方法
  • :将其用于生成的表中生成的
    UniqueKey
    引用,例如从

非常感谢,伙计。我建议,一些关于如何创建和使用
Name
对象的小示例对于jooq的文档来说是一个非常有用的补充,因为我花了太多时间试图弄清楚如何创建一个对象。也许在
Name
上使用一个静态工厂方法,或者其他什么方法会使它更容易被发现(我只是在这里吐痰)。@leecarbtree:几乎所有东西都可以从
org.jooq.impl.DSL
创建。事实上,理想情况下,您只需导入static org.jooq.impl.DSL.*
在每一个使用jOOQ的类中,只要开始键入
name(“abc”)
。但说到这里,我们应该指出每个
org.jooq.XYZ
类型中的
DSL
方法,以帮助新用户发现这些方法。我已经为此创建了一个功能请求:我已经使用jOOQ大约一年半了,这是我第一次遇到
Name
。我认为jOOQ是很棒的,当一个特性不能被发现时,我会感到沮丧。如果所有这些都被认为是愤怒或指责,那么我很抱歉;“那绝对不是我的本意。”利克拉布特里:别担心。但是,既然您知道了
Name
是什么,以及如何构建它,那么我们还能如何改进呢?如何更改文档以帮助您发现这一点?我的最终问题是,在冲突约束不是主键的情况下,尝试进行一次重新插入。这不是世界上最常见的事情,但更多的真实例子将是一件好事。现在,文档看起来很像Javadocs,它对于了解什么是有用的,但并不总是如何使用它。