问题标签 [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 - 如果 Dto 使用 MapStruct 具有 Id,则将 dto 映射到从数据库中检索的实体
我正在使用MapStruct进行dto <-> entity
映射。相同的映射器用于从 dto创建 和 更新实体。对 dto 的 id 进行验证以了解是否必须创建新实体 (id == null) 或者应该从数据库中检索 (id != null)。
我实际上使用MapperDecorator作为解决方法。例子 :
映射器
装饰器
但是由于必须为每个映射器创建一个装饰器,这个解决方案变得很重。
有什么好的解决方案来执行吗?
我在用着 :
- 地图结构:1.1.0
maven - Gradle 自定义编译
我想实现以下我在 gradle 中使用 maven 所做的事情:
我正在做的是禁用默认编译,编译除我的 Mapstruct 映射器之外的所有源文件,然后编译 Mapstruct 映射器,包括之前编译的源。我是 gradle 新手,不知道如何实现类似的目标。到目前为止,我尝试过的是:
结果实际上是什么都没有编译。我想这样做的原因是我想在我的项目中使用 lombok 和 mapstruct。
mapstruct - src/test/java 中的 Mapstruct 映射器不是由 maven build 生成的
正如标题所说,我有一个映射器接口src/test/java
,它不是由mapstruct处理器生成的。
在同一个项目中,src/main/java
会生成所有的映射器。这是预期的行为吗?
如何在测试源中生成映射器?
编辑(更多信息):
简化的 Maven 模块结构:
pom.xml 的root_project
的 pom.xmlmodule_1
基本上是空的:
java - Mapper 的 Mapstruct 原型
我正在使用 Spring,我从项目中的 mapstruct 库开始,所以我想为 @Mapper(componentModel = "spring") 创建原型注释,如 @SpringMapper。但它不会生成任何映射器。
这是不可能的还是我做错了什么?
java - Mapstruct:仅针对集合映射忽略特定字段
我正在使用以下映射器来映射实体:
我只需要忽略映射为集合的实体的“数据”字段。但它看起来@Mapping
只适用于单个实体。另外我注意到生成的方法assigmentFilesToAssigmentFileDTOs
只assigmentFileToAssigmentFileDTO
在for循环中使用。有什么解决办法吗?
java - Mapstruct从字符串到嵌套对象,用于具有相同类型的多个字段
我有带有字段的实体类:
- 客户端发件人;
- 客户收件人;
我有带有字段的 DTO 类:
- 长发件人ID;
- 长收件人ID;
如果我这样做:
Mapstruct 将生成如下代码:
Mapstruct 为发件人和收件人获取收件人 ID,而不是收件人 ID 来创建客户端收件人和发件人 ID 来创建客户端发件人。
所以我发现的更好的方法是使用我所看到的不太优雅的表达式:
你能建议我如何映射它们吗?
mapstruct - 如何将字符串属性映射到列表的第一个元素财产?
我有一个 CXF 生成的类,它有一个集合作为它的唯一属性。我需要将 DTO 中的单个值映射到该集合的元素中,如下所示:
这真的应该工作吗?如果是这样,我该如何配置此映射?
java - 使用mastruct将null设置为目标
我正在使用 mapstruct,我想知道是否有任何方法可以为某些目标属性设置空值。例如,
我会喜欢上面的源代码、dto 和映射器来生成下面的源代码,
java - 如何使用 mapstruct 将枚举映射到布尔值?
我有一些自动生成的枚举,我需要将它们映射到 MapStruct 映射器中的布尔值。他们是这样的:
我尝试使用@ValueMappings(),但没有成功:
我怎样才能实现这个映射?
java - 我如何结合 Guice 和 Mapstruct?
我正在使用球衣和 Guice DI,我想使用带有@Inject
注释的 Mapstruct 接口。那么有什么方法可以强制 Guice 自动装配 Mapstruct 接口实现吗?