pes*_*che 5 java object-object-mapping mapstruct
我有一个相当大的 bean(约 100 个属性)映射到几个较小的对象中。可能会出现较小的目标对象具有与我的源 bean 中名称相同但语义不同的属性。
我希望MapStruct在这种特定情况下只映射我使用@Mapping注释明确告诉的内容,而不执行通常的自动映射。
该MapStruct文档告诉我,仅此:
在生成的方法实现中,来自源类型 (...) 的所有可读属性都将被复制到目标类型 (...) 中的相应属性中。
我没有找到任何关闭此行为的配置选项。可以做到吗?
小智 8
@BeanMapping(ignoreByDefault = true)从 MapStruct 1.3 开始,可以通过映射方法注释关闭隐式字段映射。来自 MapStruct 1.3.1 参考指南:
通过 @BeanMapping(ignoreByDefault = true),默认行为将是显式映射,这意味着所有映射都必须通过 @Mapping 指定,并且不会针对缺少的目标属性发出警告。
正如穆罕默德的评论中所述,您可以明确忽略这些属性。
正如你所描述的那样,没有开关。就我个人而言,我可能会手动编写特定的映射,而不是通过注释显式配置所有映射。当然,您仍然会从类型转换等中受益,因此它可能仍然是有益的,这实际上取决于您的用例。
| 归档时间: |
|
| 查看次数: |
3034 次 |
| 最近记录: |