[英]JOOQ Howto fetch a result of join into POJO without flattening properties?
[英]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)
,它可以正常工作。 但我没有支持对象。
使用别名更方便:
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.