在 jooq 中将 where 子句通用类型(SelectConditionStep)映射到我自己的 class

Mapping where clause generic type (of SelectConditionStep) to my own class in jooq

所以我有一个摘要 class 可以在 where 子句之后准备我的查询。它看起来像这样:

SelectConditionStep<Record2<Integer, String>> whereQuery = dslContext.select(FOO.DIGITS, FOO.WORD)
                                                                .from(FOO)
                                                                .where(/*some conditions*/);

然后 returns whereQuery 并且具体实现使用该实例向其添加内容。

是否可以进行此调用 return SelectConditionStep<MyClass> 以便我不必在方法签名中写入所有 Record 类型(请注意,这是一个简化版本,想象一下有 Record10) .在此示例中,MyClass 将有两个字段,IntegerString 字段。 或者,如果不是那样,还有其他方法吗?

我正在使用 Postgres 作为数据库

假设您有一个不可变的 POJO MyClass,例如一个 Java 16 条记录:

record MyClass(int digits, String word) {}

您可以使用嵌套记录来实现类似的目的:

Select<Record1<MyClass>> whereQuery =
ctx.select(row(FOO.DIGITS, FOO.WORD).mapping(MyClass::new))
   .from(FOO)
   .where(...)