java - 如何将 2 条记录(多对一)的 Result 对象映射到 jOOQ 中它们各自的记录对象中?
问题描述
我有一张桌子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
映射到. 我知道有,但我只有一个可以合作。X
Y
into
YRecord
fetchGroups
XRecord
解决方案
您可以从通用记录类型映射您的记录,如下所示:
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);
}
推荐阅读
- javascript - 是否有推荐的方法在 React 组件中运行设置但仅在满足几个条件后?
- react-native - 如何在渲染前圆按钮?
- react-native - 选择器 onValueChange() 调用了两次
- mysql - MS Access DAO 连接在退出时放弃更改
- reactjs - React native - 改变动态元素的状态
- reactjs - 设置基本的 React JS 材质 UI 模板
- javascript - Javascript:按日期过滤 JSON - 显示过去和未来的对象
- mongodb - mongodb 中的 $Lookup 和 $addField
- javascript - window.onload 未在 NodeJS 页面中运行
- elasticsearch - ElasticSearch 正则表达式查询 无数据