【发布时间】:2017-05-26 18:55:38
【问题描述】:
我正在使用带有纯 SQL 的 jOOQ(不是生成的代码)。 我正在尝试直接选择具有一些枚举类型字段的 POJO。
MyType pojo = context.select().from(table("Table"))
.where(field("ID").equal("1")).fetchOne()
.into(MyType.class);
在我看来,我只能为我的整个 POJO 指定一个高级映射器,如下所示:
MyType pojo = context.select().from(table("Table"))
.where(field("ID").equal("1")).fetchOne()
.map(new RecordMapper<Record, MyType>() {
@Override
public MyType map(Record record) {
...
}
});
我找不到只为某些字段提供映射或转换器的方法。具体来说,我想告诉 jooq “正常转换所有字段,除非我的 POJO 中的字段是 MyEnum 类型,在这种情况下使用此映射(或转换器)”。
如何为某些字段指定映射器而不为其他字段指定映射器?
顺便说一句,我注意到我可以在配置级别执行类似的操作,将数据库字段名称与通配符匹配(如 here 所述),但我认为如果决定由字段类型驱动会更好在 POJO 中。
【问题讨论】: