mapstruct 相关问题

MapStruct是一个代码生成器,用于在Java中创建高效,类型安全的bean-to-bean映射。

Mapstruct - 更新现有 bean 并忽略字段

我正在根据文档更新一个bean: @映射器 公共接口 CarMapper { void updateCarFromDto(CarDto carDto, @MappingTarget Car car); } 是否可以告诉mapstruct忽略...

回答 2 投票 0

使用带有 JsonNullable 字段的 mapstruct 时看不到该值

在我的mapstruct接口中,我有一个方法将Long转换为JsonNullable,这是swagger生成的类等待的类型(因为nullabe = true): 默认 JsonNullable 在我的mapstruct接口中,我有一个方法将Long转换为JsonNullable,这是由swagger生成的类等待的类型(因为nullabe = true): default JsonNullable<BigDecimal> map(Long value) { return value != null ? JsonNullable.of(BigDecimal.valueOf(value)) : JsonNullable.undefined(); } 当我处于调试状态时,没关系,JsonNullable 具有:present=true,value=80 例如。 当我使用休息客户端进行测试时,我在响应中没有值: "montant": { "present": true } 你知道为什么以及该怎么做吗? 谢谢 基于 jackson-databind-nullable 的自述文件 您应该在 Jackson 上注册该模块 JsonNullableModule ObjectMapper ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.registerModule(new JsonNullableModule()); 不再以编程方式执行此操作,您可以定义模块的 bean: @Configuration public class JacksonConfiguration { @Bean public JsonNullableModule jsonNullableModule() { return new JsonNullableModule(); } } 这将自动注册,感谢 JacksonAutoConfiguration

回答 1 投票 0

MapStruct 未注入到 Kotlin 项目中

我正在尝试按照一些在线示例使用 Spring-Boot 使用当前的 Kotlin、MapStruct 和 Java 创建一个项目,因为我是 MapStruct 的新手,但是我无法将映射器注入到我的

回答 1 投票 0

MapStruct - 如何为不同的映射方法设置不同的空策略?

我想要一个具有创建和更新方法的 Mapper 类。创建方法的生成代码很好,但在更新的情况下,我想在目标中设置属性,前提是......

回答 2 投票 0

IntelliJ Idea mapstruct java:映射处理器中的内部错误:com.sun.tools.javac.jvm.ClassReader$BadClassFile:错误的类文件

最近,我在 IntelliJ IDEA 2021.2.2 和 MapStruct 版本 1.4.2.Final 中构建期间开始收到错误的类文件。 Maven 构建运行良好。有人有线索吗?多谢!! Intellij com...

回答 1 投票 0

@Mapper 注释在编译时未实现:映射器类中缺少 bean

我的映射器接口存在问题,它在编译时创建异常:上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans。

回答 1 投票 0

如何将@Conditional与Mapstruct一起使用

我想将 Spring Boot @Conditional 与 Mapstruct 一起使用。 我想使用属性文件限制 spring bean 的创建。 我正在使用 @Conditional 来实现同样的目的。 我如何为mapstruct实现它

回答 1 投票 0

如何将 Spring Boot @Conditioanl 与 Mapstruct 一起使用

我想将 Spring Boot @Conditioanl 与 Mapstruct 一起使用。 我想使用属性文件限制 spring bean 的创建。 我正在使用 @Conditional 来实现同样的目的。 我如何在mapstruct中实现它。

回答 1 投票 0

Mapstruct 返回类型

没有为返回类型org.springframework.data.domain.Page注册实现类型。 @Mapper(componentModel = "spring",uses = {OptionalMapper.class, VehicleImageMapper.class, GearShiftMapper.

回答 2 投票 0

防止Mapstruct在自动映射器检测中使用方法

我有一个 Mapstruct 映射器,我必须在其中执行一些字符串转换服务。即,从自然语言短语列表到实用程序类中定义的不透明常量。不,我不会使用枚举...

回答 2 投票 0

如何在mapstruct中实现同一实体的多对多关系?

如何在mapstruct中实现同一实体的多对多关系? 我有个问题。示例实体: A 类 { 列表 列表 = ... } 如何在映射器中映射递归列表? 如何必须...

回答 1 投票 0

Mapper 找不到它所依赖的另一个映射器

我有两个映射器,MapperOne 和 MapperTwo,后者依赖于前者: @Mapper(componentModel = "弹簧") 公共接口MapperOne { UserDTO 转换(User 用户); } @M...

回答 2 投票 0

MapStruct:映射器找不到它所依赖的另一个映射器

我有两个映射器,MapperOne 和 MapperTwo,后者依赖于前者: @Mapper(componentModel = "弹簧") 公共接口MapperOne { UserDTO 转换(User 用户); } @M...

回答 1 投票 0

如何使用MapStruct将实体和实体列表映射到具有嵌套列表的单个DTO?

我需要使用 MapStruct 将一些实体和实体列表转换为单个 DTO。此 DTO 包括嵌套列表。 假设我有以下持久化支持的 POJO: 公共类实体...

回答 3 投票 0

使用 MapStruct 的 Spring Boot 问题

我是 Spring Boot 新手。我希望有人能帮助我理解我做错了什么。 我创建了服务。 @RequiredArgsConstructor @服务 公共类用户服务{ 私有最终 UserRepository

回答 1 投票 0

Mapstruct 映射处理器中的内部错误:org.mapstruct.ap.internal.model.Type.hasAccessibleConstructor 处的 Java.lang.NullPointerExecption

龙目岛: 1.18.30 org.mapstruct.版本:1.4.2.Final JDK 11 Intellij 2023.2.5 社区版 我正在尝试使用 Mapstruct 来映射某些对象。每当我尝试使用 mvn -clean install 进行编译时......

回答 1 投票 0

如何使用 MapStrcut 转换双向链接

下面是一个非常简化的汽车共享模型,其中一辆汽车可能由多个用户使用。我需要将服务对象转换为 DTO 对象,反之亦然: @数据 公共课汽车{

回答 1 投票 0

在映射子类时无法映射带有嵌套对象的超类

我正在尝试使用 MapStruct 映射类。我有超级类和子类扩展它。这些字段在 BaseMapper 生成的代码中正确映射,但在 ChildMapperImpl 中,来自

回答 1 投票 0

将对象/地图与mapstruct合并

我有两个相同类型的对象。所有字段都是 Map,因此对象看起来像: 类 Obj { 地图 propA; 地图 propB; ... 对象

回答 1 投票 0

选项mapstruct.defaultComponentModel未被识别

我的 pom.xml 文件中有此配置: 11 1.4.2.决赛 我的 pom.xml 文件中有此配置: <properties> <java.version>11</java.version> <org.mapstruct.version>1.4.2.Final</org.mapstruct.version> <!-- more pom code --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok-mapstruct-binding</artifactId> <version>0.2.0</version> </dependency> <path> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>2.6.6</version> </path> </annotationProcessorPaths> <compilerArgs> <arg> -Amapstruct.defaultComponentModel=spring </arg> </compilerArgs> </configuration> </plugin> 但我在构建过程中仍然收到警告java: The following options were not recognized by any processor: '[mapstruct.defaultComponentModel]' 我相信我的配置遵循 Mapstruct 文档 为什么该选项无法识别? 这个问题似乎没有帮助 可以安全地忽略此警告:您可以通过简单的配置标签并在其中添加默认配置文件来设法不再显示此错误 喜欢: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <id>default-compile</id> <configuration> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${mapstruct.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok-mapstruct-binding</artifactId> <version>0.2.0</version> </dependency> </annotationProcessorPaths> <compilerArgs> <compilerArg> -Amapstruct.defaultComponentModel=spring </compilerArg> </compilerArgs> </configuration> </execution> </executions> </plugin> 但是,在测试时您会遇到另一个问题,如果没有 maven 的 package 阶段,某些映射器将无法实现。 我的建议是忽略这个警告

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.