我正在使用 jooq,我喜欢 fetchMap(Field) 方法。如果我想使用单个字段作为键,它会很好用。现在,我想使用两个字段作为键来获取地图。fetchMap(Field[]) 方法返回一个以 Record 为键的映射。我有键中字段的值,但我不确定如何将它们转换为 Record 对象,以便我可以从地图中获取值。
基本上,我正在寻找一种从一组字段值中实例化记录的方法。
更多信息:我有一个省级报告表,一年中的每一周。表键是 (province_id, week_number)。我可以做这个...
DSLContext create = DSL.using(connection, SQLDialect.ORACLE);
Map<Record, ReportRecord> results = create.selectFrom(Tables.Report).fetchMap(new Field[]{Tables.Report.province_id, Tables.Report.week_number});
但是现在,假设我的省 ID 为 2,周数为 42。我想从中创建一个记录,所以我可以
ReportRecord report = results.get(record);
现在,我已经切换到呼叫
Result<ReportRecord> results = create.selectFrom(Tables.Report).fetch();
,迭代它,并自己创建一个地图。它正在工作,但我真的很想知道 fetchMap 方法是如何使用的。在 jooq 手册或 javadoc 中找不到任何内容。