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

java - 具有组合属性的模型映射器

给定以下模型

如何正确使用 ModelMapper 来组合 groupId、artifactId 和 version 的值?例如,有什么方法可以避免以下情况:

0 投票
1 回答
1045 浏览

modelmapper - ModelMapper 匹配策略:带有引用类型的标准

实体类:

DTO:

将实体转换为 DTO 的代码:

输出:

我在 User.java 中使用了 2 个引用类型名称地址。在为 User 创建对象时,我还传递了 Name 和 Address 详细信息。当我尝试将User对象映射到UserDTO时,名称详细信息已成功映射,但地址详细信息未映射。

任何机构都可以帮助我理解为什么会这样,还是我错过了什么?

0 投票
2 回答
5051 浏览

java - 使用构建器模式的 Java 对象映射框架

是否有任何与构建器一起使用的类映射框架?我想保持我的一些类不可变并避免使用多个构造函数 - 构建器模式来拯救。但是,我不能使用任何自动使用构建器而不是 getter/setter 的映射框架。

0 投票
5 回答
27468 浏览

java - 如何将 DTO 映射到现有的 JPA 实体?

我正在尝试将 Java DTO 对象映射到现有的 JPA 实体对象,而无需执行以下操作:

到目前为止,我一直像这样使用ModelMapper:,MyEntity entity = modelMapper.map(dto, SomeDTO.class);但我想做的是映射到现有的实体对象,而不是从 DTO创建新的实体对象。我浏览了 ModelMapper 手册,找不到如何在不创建新对象的情况下进行映射。我是否坚持为我可能拥有的每个实体对象手动添加每个成员变量?

0 投票
1 回答
1026 浏览

java - 使用 modelmapper 映射字段时如何应用自定义逻辑

如何将自定义逻辑应用于字段映射?在这个例子中,我想计算int age出一个LocalDate birthdate.

0 投票
1 回答
7697 浏览

java - 如何使用 modelmapper 将多个字段映射到一个目标字段

如何将多个字段映射/合并到一个字段中?像连接一个firstnamelastname到目的地fullname

0 投票
1 回答
2553 浏览

java - ModelMapper:如何处理枚举的空值

我正在尝试使用 ModelMapper 将一种对象类型映射到另一种对象类型。我在我的 PropertyMap 实现中定义了以下映射:

问题是源类型方法调用source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType() 返回 String 而目标类型接受MaskType枚举

因此我使用MaskType.fromValue()将字符串转换为枚举。问题是失败的值,Caused by: java.lang.IllegalArgumentException因为这是源方法调用在配置期间基本上返回 null。

那么我应该如何处理这个用例呢?

0 投票
3 回答
15147 浏览

java - 模型映射器空值跳过

就我而言, String b 可能带有一个空值。我的模型映射器配置如下:

当我映射对象时,我得到 b=null 值的目标对象。

试图远离此处显示的策略:SO-问题

我错过了什么?

0 投票
1 回答
1963 浏览

java - 如何将父类 DTO 映射到父类实体

我有以下类层次结构:

有一个 BaseFaultType 具有一些公共属性(为简单起见,我省略了其中的大部分),然后我有多种类型,它们使用附加属性扩展了 BaseFaultType。

请注意,我无法控制这些课程。

我的应用程序接收这些子类型的对象。然后我需要将这些对象映射到不同类型的实体中,即:

我正在使用 ModelMapper 来完成这项工作。请注意,我使用的 ModelMapper 配置了禁用的隐式映射(出于对此问题不感兴趣的原因):

不幸的是,这会产生仅将其initiated属性映射到实际值的 faultMessage。属性errorIderrorDetail没有被映射(可能是因为它们被配置成一个完全独立的 TypeMap)

所以我的问题是 - 我如何配置 ModelMapper 以允许我定义 TypeMaps/PropertyMaps 只映射特定于子的属性,例如initiatedand并且failed具有来自基本类型的公共属性,例如自动映射?我想在这里实现的主要目标是,我想避免在每个孩子的 TypeMap 中明确指定这些公共属性的映射,即我想避免:errorIderrorDetail

0 投票
2 回答
322 浏览

java - cglib - 在 OSGi 中创建类代理导致 NoClassDefFoundError

好的,所以这对你们来说是某种理论问题。

我正在试验 cglib 的 Enchancer - 为一个类创建一个代理。我的代码在 Felix OSGi 容器中运行。

层次结构看起来类似于:

从 OSGi 的角度来看 - 两个捆绑包 - 捆绑包 A 和捆绑包 B 功能齐全。包导入/导出是 bnd 生成的。尽管 BundleA 没有明确导入 javax.xml.datatype 包 - 我可以毫无问题地创建 Child 的实例。到现在为止还挺好。

但是当我尝试调用 enchance() 方法并创建子代理时 - cglib 抛出 NoClassDefFoundError: javax.xml.datatype.XMLGregorianCalendar

好的,我明白了——BundleB 的类加载器确实无法加载这个类,事实上——cglib 的 Enchancer 似乎正在使用 BundleB 的类加载器(Child 的类类型类加载器)来创建代理。

另一方面——为了处理模块化,OSGi 容器正在执行所谓的类加载委托——而不是 BundleB 的类加载器,OSGi 运行时将父类 Parent 的加载委托给 BundleA 的类加载器,后者知道如何加载其所有字段。这就是为什么 BundleB 不需要显式导入 javax.xml.datatype 包并且不需要知道如何加载 XMLGregorianCalendar 类并且仍然能够使用 Child 对象的原因。

我想知道 - 这种“委托”方法是否也适用于 cglib 的用例?请注意,我对字节码操作一无所知,这对某些人来说可能是一个非常愚蠢的问题。但我真的不明白 - 为什么 cglib 不能将 Parent 的加载委托给 Parent 自己的类加载器?cglib中真的没有这种机制吗?为什么?cglib 不与 OSGi 结合使用吗?如果是,那为什么?