java - 使用多个源值时,有没有办法为 Mapstruct 指定默认输入参数?
问题描述
所以在下面的例子中,我有 2 个输入对象,被映射到一个输出对象。大多数映射直接从一个输入到一个输出,只有一个来自另一个对象。
@Mapping(source = "input.a" target = "output.a")
@Mapping(source = "input.b" target = "output.b")
@Mapping(source = "input.c" target = "output.c")
@Mapping(source = "input.d" target = "output.d")
@Mapping(source = "extra.a" target = "output.extraa")
Output toOutputMapper(Input input, ExtraValues extra)
有没有办法说“将此对象用作默认值”,这可以节省我映射值并放弃 Mapstruct 提供的自动映射?
就像是:
@Mapping(source = "extra.a" target = "output.extraa")
Output toOutputMapper(@Default Input input, ExtraValues extra)
解决方案
使用 MapStruct 1.4 时,您可以使用映射到当前目标来实现您正在寻找的内容。
例如
@Mapping(source = "input" target = ".")
@Mapping(source = "extra.a" target = "output.extraa")
Output toOutputMapper(Input input, ExtraValues extra)
推荐阅读
- symfony - 如何使用否定条件过滤带有查询生成器的相关实体?
- javascript - 为 JavaScript 函数调用增加值的正确方法
- python - 无法将记录插入表中 提供的绑定数量不正确
- python - RabbitMQ 持久队列绑定
- latex - centre a table in latex with headings above cells
- parsing - Is this double constraint syntax from PKCS#9 legal?
- python - 如何添加具有未知键数的字典系列
- c# - 在 C# 中迭代临时字符串列表的最佳实践
- node.js - mongoDB takes 1.04 sec for a simple find request with node,js
- java - 使用类的常量值初始化通用 HashMap