Jooq ARRAY_AGG where 子句

Jooq ARRAY_AGG where clause

我想使用 scala Jooq 参数执行查询。

select * from table where ("value1") in unnest(array) and ("value2") in unnest(array);

我可以将这部分转换为以下 jooq 参数,但我无法获得我需要为 where 子句做的事情。

dslContext.select(asterisk()).from(table).where(*)

目前 jOOQ 似乎不支持该特定语法,另请参阅此功能请求: https://github.com/jOOQ/jOOQ/issues/12330

如果您错过了 jOOQ 中的某个功能,您可以随时通过 plain SQL templating 扩展 jOOQ。在这种情况下:

def inUnnest[T](value: T, array: Field[Array[T]]): Condition = 
  inUnnest(DSL.value(value), array)

def inUnnest[T](value: Field[T], array: Field[Array[T]]): Condition =
  DSL.condition("{0} in unnest ({1})", value, array)