我使用 jOOQ 和普通 SQL(不是生成的代码)。我正在尝试直接选择具有一些枚举类型字段的 POJO。
MyType pojo = context.select().from(table("Table"))
.where(field("ID").equal("1")).fetchOne()
.into(MyType.class);
Run Code Online (Sandbox Code Playgroud)
在我看来,我只能为整个 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) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
我找不到只为某些字段提供映射或转换器的方法。具体来说,我想告诉 jooq 类似“正常转换所有字段,除非我的 POJO 中的字段是 MyEnum 类型,在这种情况下使用此映射(或转换器)”。
如何为某些字段指定映射器而不为其他字段指定映射器?
顺便说一句,我注意到我可以在配置级别做类似的事情,将数据库字段名称与通配符匹配(如此处所述),但我认为如果由 POJO 中字段的类型来驱动决策会更好。