小编Rob*_*kes的帖子

jOOQ 选择 POJO,仅为某些字段指定映射

我使用 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 中字段的类型来驱动决策会更好。

java sql enums jooq

5
推荐指数
1
解决办法
1927
查看次数

标签 统计

enums ×1

java ×1

jooq ×1

sql ×1