问题标签 [modelmapper]

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 投票
3 回答
15939 浏览

java - ModelMapper - 无法实例化目标实例

我正在使用 mongodb,因此我正在将实体与创建 DTO 的表示层分离(使用 hibernate-validator 注释)。

我正在尝试从数据库中检索这个具体的类

像这样:

我得到这个关于无法实例化的错误ResumeDTO

ResumeDTO 与 UserDTO 类似,是一个抽象类,每个用户类型都有具体的类。他们都有没有参数的构造函数。问题是什么?

0 投票
1 回答
2538 浏览

java - Java:ModelMapper 不编译包含集合 List 的嵌套对象

我正在使用 ModelMapper v0.7.7 我的类如下所示:

我的 ModelMapper 配置如下所示:

当我想将一个对象转换为另一个对象时,我使用以下源代码:

当然,这意味着data是由包info.p1中的第一个类创建的对象 。

当我执行此源代码时,只有这些“字符串”变量(someValue1 和 someValue2)将被填充,但变量“itemOne”将为空,即使我传递了填充了所有属性的完整对象。

指示:这两个类都是通过 maven 生成的,带有 org.apache.cxf -> wsdl2java 包,因此它们都包含特殊的“javax.xml”注释。

Edit1: Class ChildClassOne 存在于两个包中。当 ModelMapper 尝试转换它时,它会识别出两个类中的这个变量由于不同的包而具有完全不同的类型,并且 ModelMapper 不会映射这个变量。

字符串变量(someValue1,someValue2)是一样的,但是两个类中的字符串类型是相同的,并且这种类型存在于同一个包中,然后 ModelMapper 将映射它们。

当然,我可以添加一些手动步骤来解决这个简单的示例,但在实际情况下,我有更复杂的对象,其中包含许多嵌套对象。

Edit2: 我注意到的问题,当我问问题时我确实知道,是我的 ChildClassOne 中的集合列表。ModelMapper 不能映射任何包含任何类型集合的对象。在我的课程列表中如下所示:

如果嵌套对象中没有集合,ModelMapper 将映射所有对象,但在我的情况下,我的每个嵌套对象中都有集合。

0 投票
1 回答
2660 浏览

java - Java:ModelMapper 不编译嵌套集合列表中的数据

我有类似下面这样的结构:

主要问题是列表的设置方法。如果您尝试使用 PropertyMap 甚至使用 Providers,您必须使用 setter 方法,而我无法手动创建它们,因为每次运行mvn eclipse:eclipse命令时,所有对象都会从 wsdl 重新生成。

更新

您可以在以下链接中找到我的源代码: https ://github.com/ervinfetic/modelmapper-issue-one

有什么解决方案如何用转换器制作这个吗?

0 投票
4 回答
64580 浏览

java - 如何自定义 ModelMapper

我想使用 ModelMapper 将实体转换为 DTO 并返回。大多数情况下它可以工作,但我该如何定制它。它有很多选择,很难弄清楚从哪里开始。什么是最佳做法?

我会在下面自己回答,但如果另一个答案更好,我会接受。

0 投票
0 回答
144 浏览

java - ModelMapper 将用户名映射到 userId

我正在使用 ModelMapper 将 UserDto 类映射到用户实体(详情如下),但它错误地将用户名映射到 userId。我该如何防止这种情况发生。

我试过使用

但是当我运行它时,我得到了不可编译的源代码。

0 投票
1 回答
6558 浏览

java - ModelMapper:确保方法的参数为零且不返回 void

我对模型映射器进行了以下配置,以将User类的实例转换为ExtendedGetUserDto.

在注释掉之前,setReceivedExpense我收到了这个错误:

在花了一些时间并没有找到根本原因后,我尝试删除 DTO 中所有可疑的循环依赖项GetUserDto(我在代码)并用简单的循环替换它。GetExpenseDtoexpenseDtoConvertermap().setReceivedExpensesfor

我收到以下错误:

为什么我会收到这些错误?

编辑 1

User.java

ExtendedGetUserDto.java

0 投票
1 回答
1069 浏览

json - 使用 Rx 编程 Moya 将 JSON 响应映射到对象

我正在尝试像这样使用 ModelMapper 库的 mapObject 函数:

用这个 Json :

我试图用这种方式看看有什么错误:

我在控制台中得到了这个:

这是我的映射结构:

我也尝试过 pod 更新,但没有任何改变。我真的不明白为什么它不起作用。

在此先感谢您的帮助!

0 投票
1 回答
932 浏览

spring - Modelmapper 不执行转换器转换方法

我有一个 spring 应用程序,它使用模型映射器在实体和 DTO 对象之间进行转换。我在 DTO 中有一个字符串,它表示实体中的 ZonedDateTime 对象。我在 SpringAppConfiguration 中编写了以下代码段

如您所见,有 2 个转换器。从 DTO 字符串更改为实体中的 ZonedDateTime 对象的那个根本不会被执行。反之亦然的转换正在正确执行。

我将不胜感激任何帮助,对此的任何建议。

谢谢

0 投票
0 回答
1856 浏览

java - 使用 ModelMapper 映射硬编码值

我正在评估ModelMapper 库以映射项目 DTO 和实体。尽管该库非常强大,但我找不到将实体上的硬编码值映射到其 DTO 表示的方法。

ModelMapper 将源类的方法映射到目标类的方法。例如:

但是我在 DTO 上有一个属性,它还没有出现在实体方面。使用 Spring 转换器类,此映射始终由像这样的硬编码值完成dto.setStatus("ACTIVE");。但是使用 ModelMapper 我无法弄清楚如何正确地做到这一点。我的第一次尝试是这样的:

但是,上面的映射不起作用,因为 ModelMapper 期望get从源映射方法。因此,返回没有任何效果,实际上上面的代码会导致运行时错误。

一个非常丑陋的可能解决方案是使用这样的using助手强制获得所需的结果:

在这种情况下,该getName方法仅用于提供get方法,而实际值将替换为ACTIVE。但由于这是一个不清楚的解决方案,我想了解是否有更好的解决方案来使用 ModelMapper解决这个问题。

另一个解决方案是添加到我的 entity/dto a method public String getStatus() { return "ACTIVE"; }。但我真的很想将所有硬编码值保留在映射器上。

0 投票
1 回答
10250 浏览

java - 如果它们从 Modelmapper 中为空,如何排除整个属性

ModelMapper( http://modelmapper.org/ ) 是否支持排除属性?如果值为空。

我刚刚找到了 PropertyMap。但这对我来说是一个约束。因为我必须描述我想要的特定属性。

像这样。

就我而言,我有很多财产和冗长。如果它们都为空,如何排除映射属性。有更舒适的解决方案吗?

谢谢。