使用 Mapstruct 作为 JOOQ 的 RecordMapper

2024-02-08

我想实现我自己的RecordMapper并使用 Mapstruct 将 Record 映射到 POJO。我不太明白如何实现这一点。我遵循了文档的这一部分:https://www.jooq.org/doc/3.13/manual/sql-execution/fetching/pojos-with-recordmapper-provider/ https://www.jooq.org/doc/3.13/manual/sql-execution/fetching/pojos-with-recordmapper-provider/

我的映射器看起来像这样:

public class LanguageMapper<R extends Record, E> implements RecordMapper<R, Language> {

  @Override
  public Language map(R record) {
    LanguageRecord languageRecord = (LanguageRecord) record;

    // this is just an example, in the future this is the kind of mapping that would be performed automatically via mapstruct
    return new Language(
             languageRecord.getId(), 
             languageRecord.getNamespaceId(), 
             languageRecord.getLanguage(), 
             languageRecord.getCountryCode(), 
             languageRecord.getLanguageTag()
    );
  }
}

问题是,作为一个record我实际上并没有得到LanguageRecord but a RecordImpl我的语言表,因此无法投射record to LanguageRecord。知道我需要改变什么吗?

使用时有什么有趣的RecordImpl是,如果我做这样的事情

record.get(LANGUAGE.LANGUAGE_TAG);

它已经获得了错误的信息(它正在获得 LANGUAGE.NAMESPACE_ID)。因此,当像这样获取它然后将其映射到 POJO 时,它也会是错误的。

(根据这个问题创建了这个问题JOOQ 中的 POJO 映射,无论参数顺序如何 https://stackoverflow.com/questions/60926102/pojo-mapping-in-jooq-regardless-of-parameter-order)


我使用 jOOQ codegen 生成了 Record 类和 POJO,并且我的最小映射器刚刚工作

@Mapper
public interface FooMapper extends RecordMapper<FooRecord, Foo>, RecordUnmapper<Foo, FooRecord> {
}

它会警告未映射的字段,但您可以使用 抑制该警告。

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Mapstruct 作为 JOOQ 的 RecordMapper 的相关文章

  • Maven 管理的 Java EE 应用程序中 JBoss 提供的库

    这对我来说实际上不太可能 但网上似乎没有关于将 JBoss 提供的依赖项导入 Maven 管理的 Java EE 应用程序以在其中部署的直接答案 据我所知 有两件事与这个问题有关 那就是jboss as client外部 就 JVM 而言
  • 根据代码版本测试和管理数据库版本

    当您开发应用程序时 数据库的更改不可避免地会出现 我发现的技巧是让数据库构建与代码保持同步 过去 我添加了一个针对目标数据库执行 SQL 脚本的构建步骤 但这很危险 因为您可能会无意中添加虚假数据或更糟的情况 我的问题是保持数据库与代码同步
  • 由于保存之前/之后的 CSV 差异而导致错误解析(Java w/ Apache Commons CSV)

    我有一个 37 列的 CSV 文件 我正在使用 Apache Commons CSV 1 2 在 Java 中解析该文件 我的设置代码如下 initialize FileReader object FileReader fileReader
  • 使用祖父母接口的默认方法

    我完全不明白为什么这行不通 interface Test default void doMagic System out println Abracadabra class TestImpl implements Test class Sp
  • Android 在 ROOM 数据库中插入大量数据

    我有大约 10 个模型 每个模型都有超过 120K 行和 90 列的记录 其中包含双数组值 在 Room 中插入任何模型都需要超过 125 130 秒 任何人都可以建议我需要做什么才能使用一些批量插入技术来保存所有这些 120K 该技术大约
  • Android - Firebase - 保存新数据而不覆盖旧数据

    创建此问题是因为我之前的问题包含 2 个问题 而不是将其缩小到 1 Aim 用户将能够存储新数据而不会覆盖之前提交的数据 描述 目前 当用户输入新报告时 事件报告节点中的用户事件报告数据将被覆盖 用户发送的旧事件报告中的数据应与新数据一起保
  • MySQL:主键的所有部分都必须为 NOT NULL;如果您需要在键中使用 NULL,请使用 UNIQUE 代替

    我的 MySQL 有问题 我创建了名为 BucketList 的数据库 然后尝试创建名为 tbl user 的表 它看起来像这样 CREATE TABLE BucketList tbl user user id BIGINT NULL AU
  • Java中的String为什么是不可变的对象,但我在创建一个对象后仍然可以更改它的值? [复制]

    这个问题在这里已经有答案了 如果我可以创建一个字符串并给它一个值 这怎么可能呢 然后 我可以像这样简单地覆盖它的值 String a abc a def 我怎么可能改变的值a 我一定在这里遗漏了一些东西 我知道每当创建 String 对象时
  • 无法在 Spring boot 中使用 findOne() 方法

    我的项目是关于用户管理器网络的 我是 Spring 和 Java 的新手 这是我的代码 在 UserController 中 RequestMapping value users name method RequestMethod GET
  • 正则表达式的替代(流畅?)界面设计

    我刚刚看到了一个巨大的 Java 正则表达式 这让我对正则表达式的一般可维护性进行了一些思考 我相信大多数人 除了一些糟糕的 Perl 贩子 都会同意正则表达式很难维护 我正在考虑如何解决这种情况 到目前为止 我最有希望的想法是使用流畅的界
  • Postgres UUID 和休眠

    我有一个具有 UUID 列的实体 它不是主键 我正在使用 Postgres 和 hibernate 我对此专栏的类型是https www postgresql org docs 9 1 static datatype uuid html h
  • Java 中的逻辑回归

    我们需要用 Java 进行逻辑回归 我们在 Python 中使用了这段代码http blog smellthedata com 2009 06 python logistic regression with l2 html http blo
  • 关于 mongodb java 驱动程序的困惑[重复]

    这个问题在这里已经有答案了 我是 MongoDB 的初学者 我正在使用 JAVA 驱动程序来使用它 我有以下代码 MongoClient client new MongoClient DB d client getDB world DBCo
  • 如何为我的数独游戏制作 GUI? (摇摆)

    到目前为止 我已经编写了生成随机 9x9 数独网格的代码 我是Java的初学者 所以我有一些关于如何做UI的问题 显示数字的最佳方式是什么 我尝试创建 81 个 JTextFields 这非常乏味 而且我确信有一种有效的方法可以做到这一点
  • 将 JAR 文件打包为 WAR 文件

    我有一系列依赖的Java项目 我想将它们打包成一个 JAR 文件 以便在我的 WAR 文件中使用 这些项目依赖于大量的外部库和项目 如log4j apache commons等 我选择 Eclipse 中的所有项目并导出为 JAR 文件 然
  • 无法渲染非字符串的属性,toString 返回:null SPRING MVC 中的错误

    我正在尝试按照本教程为我的 spring mvc 项目创建一个通用错误处理程序 http www mkyong com spring mvc spring mvc exceptionhandler example http www mkyo
  • 定时器启动/停止参数

    自从加入这个社区以来 我在技能和进步方面取得了突飞猛进的进步 你们都是一个巨大的帮助 我无法提供一个计时器 该计时器已在启动和停止时实现了某些参数 我要么收到错误消息 局部变量计时器可能尚未初始化 要么没有收到错误消息 但什么也没有发生 也
  • 如何获取嵌套类型内部结构的所有类型?

    我有一个函数如下 public void park List
  • Android 布局崩溃

    I use a XWalkView https crosswalk project org 加载网页和视频查看器 https github com Bilibili ijkplayer在我的应用程序中播放实时视频 我希望 IjkVideoV
  • hibernate通过主键查询

    我想通过主键创建查询 假设我有类主键 PersonKey 属性是 name 和 id 我有 Person 类 属性是 PersonKey 地址 DOB 现在 我想通过主键搜索人员 首先 我创建 PersonKey 的实例 并将名称设置为 j

随机推荐

  • 返回唯一值而不删除重复项 - C#

    我知道关于删除重复项后返回数组中的唯一值有很多答案 但是删除重复项后数组中的每个元素不是都是唯一的吗 我只想在删除任何重复项之前返回唯一的值 如果该元素在原始数组中重复 我不希望它出现在最终数组中 那么这个数组 0 1 1 2 3 3 3
  • Google OAuth:无法使用授权代码获取刷新令牌

    我正在使用 Google API 客户端进行 Google Analytics 和 OAuth 2 0 我阅读此内容是为了获取刷新令牌 但它没有出现 https developers google com identity protocol
  • Internet Explorer 7 8:jQuery UI 效果仅工作一次

    Context 我使用 jQuery UI 效果 slide and drop 打开和关闭幻灯片 以下代码适用于 Chrome Firefox 和 IE 9 在 IE 7 和 8 上 我只能打开和关闭幻灯片一次 幻灯片保持隐藏状态后 有什么
  • 类库中的控制器和视图

    我有一组在许多项目中使用的控制器和视图 我想知道是否可以将其放入类库中并将其作为普通的 lib 文件重用 我怎样才能做到这一点 绝对可行 你需要的东西 在应用程序启动时注册路线的某种方法 一个了解库视图和应用程序特定视图的视图引擎 第一个很
  • 如何在ReactJs中制作步骤向导表单?

    我正在制作简历生成应用程序 并且我已经将这些事情完成了组件 目前有两个组件 例如 gt BasicDetails gt EmploymentDetails 完整的工作示例 https codesandbox io s next dynami
  • 查找鼠标相对于控件而不是屏幕的位置

    我有一个名为的图片框BGImage 我希望当用户单击此按钮时我可以捕获鼠标相对于BGImage 我尝试过使用MousePosition 却发现它给出了鼠标在屏幕上的位置 而不是在 PictureBox 上 所以我也尝试使用PointToCl
  • 使用 python 拉取更改日志时出现问题

    我正在尝试使用 python 查询和提取更改日志详细信息 以下代码返回项目中的问题列表 issued jira search issues project proj a maxResults 5 for issue in issued pr
  • 如何删除 Room 数据库?

    如何删除我的应用程序的 Room 数据库 我找到了clearAllTables https developer android com reference androidx room RoomDatabase html clearAllTa
  • 有虚拟 Twain 扫描仪吗?类似于 Daemon Tools 虚拟 CD [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在测试一个扫描应用程序 目前我没有任何扫描仪可以插入它 是否有像 Daemon Tools 那样的
  • 如何将 Nearforums 集成到我当前的 MVC 应用程序中

    我创建了一个 ASP NET MVC 4 0 应用程序 现在我正在尝试寻找一个可以将其自身集成到我的 MVC 应用程序中的第 3 方论坛 我做了一些搜索 发现附近的论坛看起来不错 我已经下载了 Web 和 Db 脚本 我已经阅读了文档并设法
  • 检测浏览器是否为三星手机

    有没有人想出一个好方法来检测客户端的浏览器是否是三星手机 我专门寻找三星 S3 和 Note 2 但如果它能匹配 S2 和 Note 1 或其他三星手机 我就可以接受 面向未来的东西 即可能与 S4 Note3 一起使用显然是理想的 似乎没
  • jQuery 验证错误类未从字段中删除

    我有一个 jQuery 验证的自定义方法 基于斯帕克的回答 https stackoverflow com questions 15238958 ensure at least one from a group of three check
  • 如何模式匹配继承树中的抽象父类

    我是 scala 新手 有 java 背景 有没有一种方法可以在类继承树中以叶子作为案例类和节点抽象类或特征来模式匹配超类 或特征 据我所知 案例类继承是不允许的 我认为在大型继承树中匹配抽象类的模式会非常有帮助 下面代码中最后一个case
  • NullInjectorError:没有ReducerManager的提供者

    我正在使用新的 ngrx 5 这是保存减速器和 featureSelector 的文件 import AppState from interfaces app state import ActionReducerMap createFeat
  • Java 中的树实现(根、父级和子级)

    我需要创建一个类似于 Java 中所附图像的树结构 我发现了一些与此相关的问题 但我还没有找到令人信服且解释清楚的答复 应用业务包括食品超级品类 主菜 甜品等 每个类别都可以有父项或子项等 import java util ArrayLis
  • 使密封类层次结构可解析

    我有类似下面的内容 我想将它们作为意图参数传递 sealed class BasketType Parcelable class BasketOne val basketId String BasketType constructor pa
  • travis go error '命令“eval go get -t -v ./...”失败'

    我有一个非常简单的设置 Travis yml 文件 https github com openassistive OpenATFrontEnd blob master travis yml https github com openassi
  • 当我将文本从 java servlet 加载到 JTextPane 时,为什么会丢失换行符?

    我尝试使用 java servlet 加载包含多行文本的文本文件的内容 当我在浏览器中测试 servlet 时 它工作正常 文本加载新行字符 但是当我将它加载到我的 swing 应用程序中的字符串然后使用textpane setText t
  • 从 int** 到 const int** 的转换

    为什么我会进入这段代码 void foo const int int main int v new int 10 foo v return 0 这个错误 invalid conversion from int to const int fp
  • 使用 Mapstruct 作为 JOOQ 的 RecordMapper

    我想实现我自己的RecordMapper并使用 Mapstruct 将 Record 映射到 POJO 我不太明白如何实现这一点 我遵循了文档的这一部分 https www jooq org doc 3 13 manual sql exec