繁体   English   中英

JOOQ - 将结果转换为Pojo

[英]JOOQ - convert result into Pojo

我已经看到,当我们使用.selectFrom(TABLE).fetchInto(POJO.class);时, .selectFrom(TABLE)可以自动返回POJO .fetchInto(POJO.class);

但是有可能将复杂查询的结果转换为多个POJO吗?

示例:

此查询将所有列的数组返回到表Support和Box中。 可以将它们转换为Support and Box Pojo吗?

Result<Record> results = query.select()
                         .from(BOX)
                         .join(SUPPORT)
                         .on(SUPPORT.ID.equal(BOX.SUPPORT_ID))
                         .where(SUPPORT.ID.equal("XXXX"))
                         .orderBy(BOX.ID)
                         .fetch();

我已经测试了.intoGroups(SUPPORT.ID, Box.class) ,它可以正常工作。 但我没有支持对象。

实例化为SelectSeekStep1

使用别名更方便:

Box b = BOX.as("b");
Support s = SUPPORT.as("s");

SelectSeekStep1<Integer, Integer> sql = query.select(b.ID, s.ID /* other columns */)
     .from(b)
     .join(s)
        .on(s.ID.eq(b.SUPPORT_ID))
     .where(s.ID.eq("XXXX"))
     .orderBy(b.ID)
;

然后只需获取您需要的内容:

List<BoxRecord> boxes = sql.fetchInto(BOX); 
SupportRecord support = sql.limit(1).fetchOneInto(SUPPORT);

对于未来的读者,如果要使用插入方法实现相同的行为,则应使用:

insertInto(BOX)
    .set(BOX.COLUMN1, UInteger.valueOf(1))
    .set(BOX.COLUMN2, "test")
    .returning()
    .fetchOne()
    .into(<POJO_class>.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM