在 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
将有两个字段,Integer
和 String
字段。
或者,如果不是那样,还有其他方法吗?
我正在使用 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(...)
所以我有一个摘要 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
将有两个字段,Integer
和 String
字段。
或者,如果不是那样,还有其他方法吗?
我正在使用 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(...)