问题标签 [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 投票
1 回答
7377 浏览

java - Mapstruct 映射:如果所有源参数属性为空,则返回空对象

如果@Mapping/source 中引用的所有属性都为null,我希望生成的mapstruct 映射方法返回null。例如,我有以下映射:

生成的方法是:

测试用例:TagRecord 对象不为空,但有 tagId==null 和 tagLibelle==null。

当前行为:返回的 Tag 对象不为 null,但有 tagId==null 和 tagLibelle==null

如果(tagRecord.getTagId() == null && tagRecord.getTagLabel() == null),我实际上想要生成的方法做的是返回一个空的 Tag 对象。有可能吗?我怎样才能做到这一点?

0 投票
2 回答
1523 浏览

java - MapStruct 按原样映射嵌套 bean

我的问题是如何将包含嵌套对象的对象按原样映射到 DTO,而不是嵌套对象的值,例如,如果有 2 个这样的类:

在调用 TestClassDTOToTestClass() 并发送 TestClassDTO contains NestedClassDTO .. 它返回 TestClass 与 null NestedClass .. 是否可以在不编写我自己的映射器的情况下映射它?

上海

0 投票
1 回答
3247 浏览

jhipster - 使用 mapstruct 将 DTO 中的 DTO 映射到实体中的实体

我有一种情况,我在 DTO 中有另一个 DTO,我必须映射到它的相应实体。

我正在使用 mapstruct,并且已经存在 AnotherEntityMapper。


如何更改 EntityMapper 接口,以便我可以将 anotherEntityDTO 映射到 anotherEntity?

谢谢。

0 投票
1 回答
11464 浏览

maven - Mapstruct : 在 intelliJ 中使用 annotationProcessorPaths 生成源

我使用EclipseIDE 开发了一个应用程序,Mapstruct现在我正在IntelliJ继续开发。

在 Eclipse 上一切正常,但由于使用annotationProcessorPaths.

我的配置如下:

在 IntelliJ 上,当我启动 Maven 全新安装时,我得到了生成的源代码:

但是当我运行/调试我的 Spring Boot 应用程序时,我得到的生成源是:

我怎么解决这个问题 ?

0 投票
1 回答
2835 浏览

java - Mapstruct 映射查询:将属性从 dto 映射到实体,但不是 dto 上的属性

我有一个名为 TripEvent(持久性实体)的实体对象。请参阅下面我想提请注意的字段是 createdby 和列表​​ List

TdfiFishGear 类看起来像下面的代码片段,你可以再次看到由属性创建的。

我的 DTO 类 Dep 是通过 Json 有效负载填充的宁静调用看起来像这样......

您可以查看此 DTO 是否没有由 .. 创建的字段,因此在我的映射类中,您将看到我必须做的事情,对 mappes 的各种调用将代码转换为 id 等

因此,实体对象中需要 dto 对象之外的字段,除了这些字段之外,映射工作得很好。

因此,我试图弄清楚如何从 depDTo.gea 填充 tdfiFishgears 列表,以包含一个 createdby 字段,该字段不在 dto 上,但在列表中的所有实例上都是必需的。我通过将它们作为方法(接口)的参数传递来在顶层捏造了这一点。我不想提供自定义映射器来循环遍历列表并手动实例化和映射对象,因为映射正在工作100% 除了这个领域(s .. 我有更多)。

任何想法......我还应该提到 DTO 层不能更改,因为它来自另一个团队。

这是我在 ide 中遇到的错误的图像... error.png

0 投票
1 回答
13375 浏览

spring-mvc - 映射处理器中的内部错误:java.lang.NullPointerException

我正在尝试使用 mapstruct 将本地 pojo 映射到自动生成的域对象。期望一个特定的复杂结构,其他一切似乎都映射,并且映射器实现类得到生成。以下是我得到的错误。

我的映射器类是:

错误:

目标对象ItemDetailsType确实具有不需要映射的其他属性。该错误表示编译问题,但我没有找到任何问题。此外,我尝试添加unmappedTargetPolicy = ReportingPolicy.IGNORE在我的映射器类级别尝试过,只是为了避免这是由未映射的属性引起的,但仍然没有解决方案。

0 投票
1 回答
10631 浏览

mapstruct - 使用 @aftermapping 进行 MapStruct 批量转换

我想在 DTO 的单个项目转换之后使用专用的 @AfterMapping 应用装饰,在处理其集合转换风格时使用另一个专用的 @AfterMapping 但不是两者兼而有之。

我不想在处理 List 转换时调用 populateCatName 并因此复制我的装饰。

无论如何要这样做?

0 投票
1 回答
1464 浏览

java - Mapstruct:在对象列表中自动增加对象变量

我有一些这样的 POJO:

现在我想使用 MapStruct 将 C 类映射到 A 类,以便 A 类中 bList 中的 id 值自动递增。我正在使用 Mapstruct 1.1.0.Final。

对于映射List<D>List<B>,我可以为 and 定义一个映射器,class B并且class DPOJO 将被自动映射,但找不到一种方法可以将 POJO 与字段上的自动增量一起映射。

我的 POJO 很大。Map Struct 中是否有一种方法可以自动增加列表中的变量?

0 投票
2 回答
1912 浏览

java - 如何在将 DTO 发送到客户端之前添加自定义逻辑?

可能这可能是一个非常简单的问题,但在解决给定问题时我很迷茫。

我有一个名为 MediaResource 的实体,它有 id、imageName 等字段,另一方面,有 MediaResourceDTO 它有 imageName、byte[] resourceFile 等。

这个想法是从数据库中获取图像名称,在将 MediaResourceDTO 发送到客户端之前,我想将图像文件加载到 MediaResourceDTO 中。

我不知道如何从 MapStruct 实现这一点。

我看过几个@Before 和@After 的例子,但我不明白它的用例。

这是我的源代码: MediaResourceMapper

媒体资源实体

媒体资源DTO

谢谢你。

0 投票
1 回答
245 浏览

java - 映射未应用于子类

我有以下映射:

TGufidValue 正确转换为 TParticulier/Particulier 但被跳过到 Adresse/TAdresse 转换,如下所示:

所有 TGufidValue 对象的 TAddress 字段都被跳过,因此不会出现在 TAdresse 转换中。除了 TParticulier/Particulier 之外,是否有什么特别的事情要做才能使这种转换在其他类上全局可用?