gpt4 book ai didi

java - JOOQ - 使用 RecordMapper 映射单个记录

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:59 25 4
gpt4 key购买 nike

我无法使用 RecordMapper 映射器 来映射通过 fetchOne/fetchAny 检索到的单个记录。

如果我使用例如(如手册中所示)

List<Something> list =  create.selectFrom(TABLE).fetch().map(mapper);

它有效,

但如果我使用相同的映射器:

Something pojo = create.selectFrom(TABLE).fetchOne().map(mapper);

它不编译。

感谢帮助

最佳答案

这可能与泛型有关。同时 Result.map() 需要 RecordMapper<? super R,E>参数类型, Record.map() 需要 RecordMapper<Record,E> ,因为 Record没有 R 的递归通用类型定义.

换句话说,如果你想为 Result.map() 重用相同的映射器和 Record.map() ,不幸的是,您需要将其设为 RecordMapper<Record, E> ,这意味着您将失去记录类型的一些类型安全性。

解决方法是创建一个新的结果来进行映射:

Result<TableRecord> result = DSL.using(configuration).newResult(TABLE);
result.add(record);
Something pojo = result.map(mapper).get(0);

关于java - JOOQ - 使用 RecordMapper 映射单个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597778/

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