Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用jooq';什么是地图?_Java_Sql_Jooq - Fatal编程技术网

Java 如何使用jooq';什么是地图?

Java 如何使用jooq';什么是地图?,java,sql,jooq,Java,Sql,Jooq,我使用的是jooq,我喜欢fetchMap(Field)方法。如果我想使用单个字段作为键,那么它非常有效。现在,我想使用两个字段作为键来获取地图。fetchMap(Field[])方法返回一个以Record作为键的映射。我在键中有字段的值,但我不确定如何将它们转换为记录对象,以便从映射中获取值 基本上,我正在寻找一种从一组字段值实例化记录的方法 更多信息:我有一张每年每周的省级报告表。表键为(省id、周编号)。 我可以做到这一点 DSLContext create = DSL.using(con

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

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

更多信息:我有一张每年每周的省级报告表。表键为(省id、周编号)。 我可以做到这一点

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});
现在,我改打电话了

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

,迭代它,然后自己创建一个地图。它正在工作,但我真的很想知道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);

同意,这有点冗长,用户不太友好。这应该在

嗯,实际上没有一个很容易做到的方法。您可以做的是:

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);

同意,这有点冗长,用户不太友好。这应该在

中改进,我不太确定问题出在哪里。你能用一个代码示例更详细地解释一下吗?好的,我添加了一些细节。我不太确定问题出在哪里。你能用一个代码示例更详细地解释一下吗?好的,我添加了一些细节。当然有点冗长,但至少这是可行的。非常感谢。谢谢。当然有点冗长,但至少这是可行的。非常感谢。谢谢。