问题标签 [mapstruct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1489 浏览

java - STS 中的 Spring Boot 不使用生成的代码类

我正在尝试在新的 spring-boot 项目(个人)上使用 mapstruct 生成的类,似乎我的构建脚本需要其他东西。

这些类正在正确生成,因为我可以看到它们(构建文件夹中的 java 和类文件),并且当从 jar 文件执行应用程序时,它实际上可以工作。

问题是,当它从 Eclipse STS 执行时,它说 spring 找不到生成的类,是的,我确定它们是使用 @Component 创建的,并且位于 ComponentScanPath 中。

构建.gradle

此外,它似乎不是在项目 bin 文件夹中生成的

0 投票
2 回答
16945 浏览

java - 在为 mapstruct 制作的抽象类中自动装配

我正在尝试使用 Spring 构建一个 REST 控制器。为了格式化数据以提高可读性和集成度,我使用了 Mapstruct。以下是我编写 Mapper 的方式。

API 控制器功能如下所示

输出 deviceData 除了一个细节外返回正常。我无法使用此功能deviceService.findDeviceTemplateById(toDevice.getDeviceTemplateId()(其中 deviceService 是自动装配的)。错误堆栈跟踪显示 NullPointerException。所以我想知道是否有关于抽象类中自动装配资源的可访问性的一般规则?还是我实例化的方式使该功能无法访问?我应该改变什么才能让它工作?我也尝试过@Injectfrom javax.inject,结果相同。

0 投票
2 回答
1173 浏览

dto - jhipster 映射结构关系

嗨,我在 Jhipster 中有一个带有 DTO mapstruct 的模型,但我无法正确映射这些关系

生成器创建没有关系的 DTO

然后我修改了我的 PersonDTO 以包含这样的地址:

编译应用程序时出现以下错误:

但我不知道如何更正 PersonMapper 界面中的配置。

提前致谢!

0 投票
1 回答
893 浏览

java - 源和目标共享同一个接口 MapStruct

您好,我在使用MapStruct时遇到以下问题,我有以下接口:

我有两种实现:

UserUserDtoRoleRoleDto

我创建了一个名为 UserMapper 的映射器:

问题是当我尝试将 User 转换为 UserDto 时,角色对象没有被转换,我正在执行下一个 main 方法:

结果是:

Alex 类 com.raidentrance.model.Role

我期待

Alex 类 com.raidentrance.model.RoleDto

这是我的问题详细Source 和 target 共享相同的接口 MapStruct

这是我的代码,我不确定 Jackson 中是否有类似@JsonDeserialize(as=Impl.class)或 JPA 中的targetEntity

注意:我在 github 存储库中的分支工作中有一个解决方案。在那里,我将 getRole 的数据类型从IRole getRole()to更改为RoleDto getRole()有效,但我正在寻找我提到的东西。

0 投票
10 回答
46758 浏览

java - MapStruct 需要 Impl 类

我有下一节课:

映射器

实体:

DTO:

以及我使用此映射的spring服务类的方法:

当我运行上述方法时,我看到下一个异常:

错误 [dispatcherServlet]:? - servlet [dispatcherServlet] 在路径 [] 的上下文中的 Servlet.service() 引发异常 [处理程序处理失败;嵌套异常是 java.lang.ExceptionInInitializerError],其根本原因是 java.lang.ClassNotFoundException: dto.DeviceTokensMapperImpl

那么为什么mapper需要实现类呢?可以请人建议吗?谢谢。

0 投票
1 回答
6674 浏览

java - Mapstruct:泛型的映射

我想将泛型类型的对象映射Y到另一个泛型类型的对象X。使用mapstruct可以实现类似的事情吗?还是我必须为通用映射编写自定义映射器?当我编译上面的代码时,我得到了编译错误。

0 投票
2 回答
10385 浏览

jhipster - 如何修复不明确的映射方法

我正在用 jHipster 做一个实验。

我创建了两个由 DTO(mapstruct)支持的实体 A 和 B。它们之间存在多对多的关系。它们都与用户具有多对一的关系。

直到创建最后一个关系,一切正常。创建最后一个多对一关系后,出现以下错误:

定义非常简单: 对于 A:

}

对于 B:

}

我真的坚持这一点。很感谢任何形式的帮助!!

编辑:提供演示问题的 github 存储库https://github.com/andyverbunt/jhipster-m2m.git

0 投票
1 回答
9423 浏览

java - Mapstruct:如何限定 IterableMapping 函数

我在实体和 DTO 之间有一个映射器:

第一个映射函数是列出实体的“简单映射”,第二个是详细视图。我想要 List 等价物,所以我有一个注释:

并将这个限定符添加到第一个映射函数和 List 函数中:

但即使有@Simple注释,我也会收到一条错误消息:

发现用于将集合元素映射到...的不明确映射方法

如何使List map(List)函数“选择”第一个映射函数?

0 投票
8 回答
32589 浏览

jhipster - Mapstruct 生成的类没有被 Spring 在 JHipster Web 应用程序中注入

我正在开发一个使用 JHipster v2.20.0 创建的网络应用程序。使用 Eclipse 4.5.0 WTP 作为 IDE。

Spring 配置是基于注解的。

我刚刚将这个拉取与我们的代码合并。

当我尝试在 Eclipse 中运行应用程序时,我得到了这个异常:

这是 UserManagementMapper 类:

这是 UserManagementResource 类:

最后,在此合并期间 pom.xml 文件未更改。该应用程序在合并之前工作正常。

这可能是一些新手问题,但与执行合并相比,我在尝试解决这个问题上花费了更多时间。

提前感谢您的帮助!

0 投票
1 回答
1408 浏览

generics - MapStruct 与泛型共享配置

我在实体上有多个标记接口和 MappedSuperclass-es,我想创建一个共享配置,以忽略一些实体特定的目标。

示例接口和类:

我在 MapperConfig 界面中执行以下操作:

这抛出以下内容:

此功能尚未涵盖,还是我遗漏了什么?