mapstruct - 使用 Immutables 时关闭 MapStruct 中的 "builders"

标签 mapstruct immutables-library

如何在 MapStruct 中完全禁用“构建器”?我根本不想使用它们,因为它们给我带来了各种各样的问题。

我在 META-INF 下创建了服务文件(我更喜欢一种将它分配给映射构建器 = 的方法,但我没有看到任何如何在代码中正确执行此操作的示例)。

它仍在尝试使用我想要映射到的“ModifiableXXX”实例的 Immutables“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 版本开始,我们可以在以下内容中使用注解 org.mapstruct.Builder#disableBuilder:@BeanMapping、@Mapper 或 @MapperConfig

@Mapper(builder = @Builder(disableBuilder = true))
public interface ProjectMapper

看看#mapping-with-buildersdocumentation

关于mapstruct - 使用 Immutables 时关闭 MapStruct 中的 "builders",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54655555/

相关文章:

java - 如何让 GitHub 的 Immutables 在 IntelliJ + Gradle 中工作

java - 注释从 Immutables 接口(interface)奇怪地传递到实现

java - 将双向实体方法与 Mapstruct 结合使用

java - 使用mapstruct映射不同类型列表的元素

java - 如何在 MapStruct 中将相同的 TO 映射到新的相同 TO?

mapstruct - 如何使用 Mapstruct 将枚举映射到字符串

java - 我应该在 Immutables 的单元测试中使用真实对象还是模拟对象?

gradle - MapStruct和不可变

java - Android:Dagger 2 会干扰 Immutables?

java - 如何在 Java 中将属性映射到 Integer Mapstruct