问题标签 [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.
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 对象。有可能吗?我怎样才能做到这一点?
java - MapStruct 按原样映射嵌套 bean
我的问题是如何将包含嵌套对象的对象按原样映射到 DTO,而不是嵌套对象的值,例如,如果有 2 个这样的类:
在调用 TestClassDTOToTestClass() 并发送 TestClassDTO contains NestedClassDTO .. 它返回 TestClass 与 null NestedClass .. 是否可以在不编写我自己的映射器的情况下映射它?
上海
jhipster - 使用 mapstruct 将 DTO 中的 DTO 映射到实体中的实体
我有一种情况,我在 DTO 中有另一个 DTO,我必须映射到它的相应实体。
我正在使用 mapstruct,并且已经存在 AnotherEntityMapper。
如何更改 EntityMapper 接口,以便我可以将 anotherEntityDTO 映射到 anotherEntity?
谢谢。
maven - Mapstruct : 在 intelliJ 中使用 annotationProcessorPaths 生成源
我使用Eclipse
IDE 开发了一个应用程序,Mapstruct
现在我正在IntelliJ
继续开发。
在 Eclipse 上一切正常,但由于使用annotationProcessorPaths
.
我的配置如下:
在 IntelliJ 上,当我启动 Maven 全新安装时,我得到了生成的源代码:
但是当我运行/调试我的 Spring Boot 应用程序时,我得到的生成源是:
我怎么解决这个问题 ?
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
spring-mvc - 映射处理器中的内部错误:java.lang.NullPointerException
我正在尝试使用 mapstruct 将本地 pojo 映射到自动生成的域对象。期望一个特定的复杂结构,其他一切似乎都映射,并且映射器实现类得到生成。以下是我得到的错误。
我的映射器类是:
错误:
目标对象ItemDetailsType
确实具有不需要映射的其他属性。该错误表示编译问题,但我没有找到任何问题。此外,我尝试添加unmappedTargetPolicy = ReportingPolicy.IGNORE
在我的映射器类级别尝试过,只是为了避免这是由未映射的属性引起的,但仍然没有解决方案。
mapstruct - 使用 @aftermapping 进行 MapStruct 批量转换
我想在 DTO 的单个项目转换之后使用专用的 @AfterMapping 应用装饰,在处理其集合转换风格时使用另一个专用的 @AfterMapping 但不是两者兼而有之。
我不想在处理 List 转换时调用 populateCatName 并因此复制我的装饰。
无论如何要这样做?
java - Mapstruct:在对象列表中自动增加对象变量
我有一些这样的 POJO:
现在我想使用 MapStruct 将 C 类映射到 A 类,以便 A 类中 bList 中的 id 值自动递增。我正在使用 Mapstruct 1.1.0.Final。
对于映射List<D>
到List<B>
,我可以为 and 定义一个映射器,class B
并且class D
POJO 将被自动映射,但找不到一种方法可以将 POJO 与字段上的自动增量一起映射。
我的 POJO 很大。Map Struct 中是否有一种方法可以自动增加列表中的变量?
java - 如何在将 DTO 发送到客户端之前添加自定义逻辑?
可能这可能是一个非常简单的问题,但在解决给定问题时我很迷茫。
我有一个名为 MediaResource 的实体,它有 id、imageName 等字段,另一方面,有 MediaResourceDTO 它有 imageName、byte[] resourceFile 等。
这个想法是从数据库中获取图像名称,在将 MediaResourceDTO 发送到客户端之前,我想将图像文件加载到 MediaResourceDTO 中。
我不知道如何从 MapStruct 实现这一点。
我看过几个@Before 和@After 的例子,但我不明白它的用例。
这是我的源代码: MediaResourceMapper
媒体资源实体
媒体资源DTO
谢谢你。
java - 映射未应用于子类
我有以下映射:
TGufidValue 正确转换为 TParticulier/Particulier 但被跳过到 Adresse/TAdresse 转换,如下所示:
所有 TGufidValue 对象的 TAddress 字段都被跳过,因此不会出现在 TAdresse 转换中。除了 TParticulier/Particulier 之外,是否有什么特别的事情要做才能使这种转换在其他类上全局可用?