将where子句泛型类型(SelectConditionStep)映射到jooq中我自己的类



所以我有一个抽象类,它为where子句后面的查询做准备。它看起来像这样:

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

然后它返回whereQuery,具体实现使用该实例向其添加内容

有没有可能让这个调用返回SelectConditionStep<MyClass>,这样我就不必在方法签名中写入所有Record类型(注意,这是一个简化版本,想象一下有Record10(。在本例中,MyClass将具有两个字段,IntegerString字段。或者,如果不是这样,还有其他方法吗?

我使用Postgres作为数据库

假设您有一个不可变的POJOMyClass,例如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(...)

最新更新