mapstruct - 使用 Immutables 时关闭 MapStruct 中的“构建器”
问题描述
如何在 MapStruct 中完全禁用“构建器”?我根本不想使用它们,因为它们给我带来了各种各样的问题。
我在 META-INF 下创建了服务文件(我更喜欢将其分配给映射 builder= 但我没有看到任何示例如何在代码中正确执行此操作)。
它仍在尝试使用我要映射到的“ModifiableXXX”实例的不可变“builder”实例实例。如果可以的话,我什至会采取一种方法将其强制为可修改类型。
在另一个映射中,使用更新 ModifiableXXX(使用 @AfterMapping 和 @MappingTarget)方法有效。
我的映射器现在看起来像这样:
@Mapper
public interface MongoProjectMapper
{
ModifiableProject mapModel(MongoProject project);
@AfterMapping
ModifiableProject updateProject(MongoEntity e, @MappingTarget ModifiableProject p);
}
解决方案
从 Mapstruct 版本 1.3.1.Final 我们可以在 @BeanMapping、@Mapper 或 @MapperConfig 中使用注解 org.mapstruct.Builder#disableBuilder
@Mapper(builder = @Builder(disableBuilder = true))
public interface ProjectMapper
推荐阅读
- nearprotocol-validator - (NEAR 协议)如何启动验证节点
- javascript - 如何在谷歌图表中的这个仪表图表之间添加填充/空格?
- powershell - 在 powershell 中使用 handle.exe 询问文件路径时出现警告/错误消息
- sql - SQL:临时表和脚本在第二次使用时失败,但在第一次使用时有效
- python - 处理不同张数的多个excel文件
- database - 如何减少聚合时间 mongo db
- c# - 将日期字符串转换为日期时间c#
- jestjs - 异步测试因超时而失败
- javascript - ffmpeg 以代码 1 退出:重新初始化过滤器时出错!无法将帧注入过滤器网络:参数无效
- javascript - MUI 自动完成 - 默认选中所有选项