gpt4 book ai didi

java - 如何使用jooq的fetchMap返回的map?

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:12 51 4
gpt4 key购买 nike

我正在使用 jooq,并且我喜欢 fetchMap(Field) 方法。如果我想使用单个字段作为键,它非常有用。现在,我想使用两个字段作为键来获取 map 。 fetchMap(Field[]) 方法返回一个以 Record 为键的映射。我有键中字段的值,但我不确定如何将它们转换为 Record 对象,以便我可以从 map 中获取值。

基本上,我正在寻找一种从一组字段值实例化记录的方法。

更多信息:我有一张一年中每周的省级报告表。表键为(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});

但是现在,假设我的 Province_id 为 2,week_number 为 42。我想从中创建一个记录,所以我可以这样做

ReportRecord report = results.get(record);

现在,我已转为打电话

Result<ReportRecord> results = create.selectFrom(Tables.Report).fetch();

,迭代它,并自己创建一个 map 。它正在工作,但我真的很想知道 fetchMap 方法是如何使用的。在 jooq 手册或 javadoc 中找不到任何内容。

最佳答案

嗯,实际上没有一个非常简单的方法可以做到这一点。你能做的是:

Record record = create.newRecord(Report.province_id, Report.week_number);
record.setValue(Report.province_id, 2);
record.setValue(Report.week_number, 42);
ReportRecord report = results.get(record);

同意,这有点冗长而且不太用户友好。这应该在 jOOQ 3.3 with #2847 中得到改进

关于java - 如何使用jooq的fetchMap返回的map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19938815/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com