问题标签 [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 回答
3339 浏览

mapstruct - 使用 mapstruct 将平面对象映射到组合对象

当映射信息由第二个映射函数明确提供给 Mapstruct 时,为什么这不会自动生成映射代码?

.

为清楚起见的用法:

"B"并且"C"没有映射到,flat因为生成代码没有为此创建方法。

我以为我已经向生成器提供了所需的映射信息。ComposedToFlatMapperImpl当它看到该Flat map(Sub s)方法时,它应该在内部生成。

编辑

我之前没有提到这一点,但在最初的问题中,我也可以使用update更灵活的 -methods。

现在,假设有一个新Sub2类型。:

.

由于Flat没有Sub2参考,请忽略它。无需生成映射代码。

0 投票
1 回答
5220 浏览

hibernate - MapStruct 可以对 Hibernate Entity Classes 进行深度代理吗

对于希望直接返回实体类的 Web 服务开发人员来说,这是一个常见问题。即使加载了我需要的所有数据,仍然有许多我不需要的未初始化代理和集合。我希望他们只返回 null 而不会抛出延迟加载异常。基本上我只想要 POJO 合同,但是必须清除代理和休眠集合才能获得它(除非休眠中有一些我不知道的新方法)。我可以使用 MapStruct 来执行此操作吗?

如果需要,有关此的更多详细信息:

http://www.mojavelinux.com/blog/archives/2006/06/hibernate_get_out_of_my_pojo/

http://www.gwtproject.org/articles/using_gwt_with_hibernate.html

吉利德是我发现的唯一一个对此有效的东西,但它已不再存在。

0 投票
1 回答
1510 浏览

mapstruct - Mapstruct 将封闭对象传递给映射方法

有没有办法将封闭的对象引用作为参数传递给映射方法?

personToPersonDtoAfterMapping在自定义方法中映射人员对象时,我需要对封闭汽车对象的引用。

0 投票
1 回答
3566 浏览

java - MapStruct: trouble with abstract class

I have some trouble with MapStruct using abstract class. I have 2 mappers:

MapperA uses MapperB

I have a method in AbstractMapper

While clean install, i got the ambiguous method error.

It seems that Mapstruct find the method twice, one frome each Mapper that extends the same class.

I did some search on the qualifier thing but it seems usefull when using different methods with the same signature. But in my case, it's the same one!!

If you have any ints.

Thanks

Edit:

MapperB does not use any other mapper.

0 投票
2 回答
15022 浏览

java - 如何映射来自同一源类的扩展 DTO

我已经开始使用 Mapstruct 将 JPA 实体映射到 DTO。对于基本实体,这很好用。

我的问题:一些实体有延迟加载的集合,包含额外的细节,我不想总是想要获取和映射。作为解决方案,我添加了一个基本超类,其中包含始终映射的所有字段,以及一个包含集合的子类。它们都代表相同的实体,因此它们使用相同的源类。

当我尝试创建一个包含从同一源映射到两种类型的方法的 Mapper 时,我得到一个模棱两可的映射方法错误,即使方法签名(至少返回类型)不同。我会以错误的方式解决这个问题吗?我不能使用相同的源为 DTO 使用子类吗?

编辑: 如果重要的话,我正在使用 mapstruct-jdk8:1.1.0.Final

编辑 2: 下面的示例只是我头顶上的一个示例。当我实际使用代码时,它起作用了。事实证明,我的问题与示例中未包含的内容有关。当我添加映射票证集合的方法时,似乎发生了错误。这可能意味着问题与继承无关(直接?)。我可能缺少一些配置,但我不确定要寻找什么。

简单的例子:

票务实体

机票 DTO

带有评论 DTO 的票证

票务映射器界面

评论映射器界面

抛出的错误:

0 投票
1 回答
434 浏览

mapstruct - mapstruct:来自两个不同字段的映射

如何从两个不同的领域进行映射?如果存在,我需要将 b.url 设置为 axyzurl,否则设置为 aklmurl:

b.url = 存在(axyzurl)?axyzurl:存在(aklmurl)?aklmurl : 默认值

表达式可能会有所帮助,但如果我检查所有嵌套字段是否为空,它将是很长的表达式,例如 "a != null && a.getX() != null && a.getX().getY() != null && a. getX().getY().getZ() != null && a.getX().getY().getZ().getURL() != null ? a.getX().getY().getZ()。获取网址():...”

谢谢,帕维尔

0 投票
2 回答
11181 浏览

java - MapStruct:从 java.util.Map 到 Bean 的映射?

我目前有一个Map<String, String>包含表单中的值,key = value我想将它们“扩展”为一个真实的对象。

是否可以使用 MapStruct 自动化,我将如何做到这一点?

澄清一下:我将手写的代码看起来像这样:

0 投票
1 回答
2177 浏览

java - MapStruct 避免创建返回对象

我有两个模型和一个映射器,

这是我的例子,

MapStruct 正在生成源代码,其中创建了一个新的 Domain 对象。
运行最后一个命令domain = DomainMapper.toDomain(form);我以前的域对象将丢失。有没有办法使用 MapStruct 将属性从 Form 对象传输到我已经创建的 Domain 对象?
我试过这样的东西,但它不起作用,

我是这样用的,但是不行

0 投票
1 回答
910 浏览

java - 强制 mapstruct 不调用 has* 方法

我写了一个 mapstruct 映射器,它使用这样的映射:

当我查看自动生成的 mapstruct 类时,我偶然发现了该代码:

这对我来说是一个问题,因为hasId()mapstruct 在这里所期望的不是。我可以以某种方式强制 mapstruct 不生成使用此方法但检查的代码id != null吗?

我可以使用类似的映射,@Mapping(target = "userId", expression= "java(...)")但我认为应该有另一种方式。

0 投票
2 回答
12179 浏览

mapping - MapStruct 和参数化构造函数?

MapStruct 是否支持参数化构造函数?

我在 2015 年的许多帖子中发现此功能将在1.1发布时实现。现在我正在使用1.1.0.Final,但我无法在文档中找到如何映射需要参数化构造函数的目标对象。

这个功能实现了吗?