我有一张桌子.page-header.has-featured-image{
padding: 2rem 3.75rem;
}
和另外一张X
。我想从Y
加载一条具有X
外键的记录,因此我执行左联接:
Y
这很好,但我对如何从中提取X x = dslContext.select()
.from(Tables.X)
.leftJoin(Tables.Y)
.on(Tables.X.SOME_ID.eq(Tables.Y.ID))
.where(Tables.X.IS.eq(id))
.fetchOptionalInto(XRecord.class)
感到有些困惑?我尝试使用Y
,但是问题是,如果into
中也有Y
中存在的列,我将看到X
中的值而不是{{1} },当我尝试将结果X
映射到Y
时。我知道有into
,但是我只有YRecord
可以使用。
答案 0 :(得分:2)
您可以按如下所示从通用记录类型映射记录:
Record r = dslContext
.select()
.from(Tables.X)
.leftJoin(Tables.Y)
.on(Tables.X.SOME_ID.eq(Tables.Y.ID))
.where(Tables.X.IS.eq(id))
.fetchOne();
if (r != null) {
XRecord x = r.into(Tables.X);
YRecord y = r.into(Tables.Y);
}
答案 1 :(得分:0)
我刚刚弄清楚了。 jOOQ代码生成器创建一个名为Keys
的对象,其中包含项目中的所有键。这样您就可以使用
xRecord.fetchParent(X_TO_Y_ID_FKEY)
,它将为您获取父级(也适用于子级)。
有一个警告。需要Record
attach
到DSLContext
才能使用这种方式。