我有一段代码,如:
ctx.select()
.from()
...
.fetchInto(MyAwesomeClass.class)
MyAwesomeClass有一个自定义类型的字段(我们称之为MyLong),可以转换为/从Long。目前,jOOQ 无法在Long和之间转换MyLong:
org.jooq.exception.DataTypeException: Cannot convert from 1 (class java.lang.Long) to class foo.bar.MyLong
我想在jOOQ DSL配置要转换到注册一个转换器Long来MyLong。我有转换器,但我正在努力将其纳入 DSL 配置。可以选择为配置提供 ConverterProvider,我这样做了 - 但它似乎不起作用。
ConverterProvider 片段是这样的:
new DefaultConfiguration()
.set(
new ConverterProvider() {
@Override
public <T, U> Converter<T, U> provide(Class<T> tType, Class<U> uType) {
if (tType == Long.class && uType == MyLong.class) {
return (Converter<T, U>) Converter.of(Long.class, MyLong.class, MyLong::of, MyLong::toLong);
} else {
throw new UnsupportedOperationException();
}
}
});
我知道这个 API 被标记为实验性的,但是有没有其他方法可以实现我想要的,而无需在代码生成端声明强制绑定或其他一些构造?
相关分类