问题标签 [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.
java - 具有组合属性的模型映射器
给定以下模型
如何正确使用 ModelMapper 来组合 groupId、artifactId 和 version 的值?例如,有什么方法可以避免以下情况:
modelmapper - ModelMapper 匹配策略:带有引用类型的标准
实体类:
DTO:
将实体转换为 DTO 的代码:
输出:
我在 User.java 中使用了 2 个引用类型名称和地址。在为 User 创建对象时,我还传递了 Name 和 Address 详细信息。当我尝试将User对象映射到UserDTO时,名称详细信息已成功映射,但地址详细信息未映射。
任何机构都可以帮助我理解为什么会这样,还是我错过了什么?
java - 使用构建器模式的 Java 对象映射框架
是否有任何与构建器一起使用的类映射框架?我想保持我的一些类不可变并避免使用多个构造函数 - 构建器模式来拯救。但是,我不能使用任何自动使用构建器而不是 getter/setter 的映射框架。
java - 如何将 DTO 映射到现有的 JPA 实体?
我正在尝试将 Java DTO 对象映射到现有的 JPA 实体对象,而无需执行以下操作:
到目前为止,我一直像这样使用ModelMapper:,MyEntity entity = modelMapper.map(dto, SomeDTO.class);
但我想做的是映射到现有的实体对象,而不是从 DTO创建新的实体对象。我浏览了 ModelMapper 手册,找不到如何在不创建新对象的情况下进行映射。我是否坚持为我可能拥有的每个实体对象手动添加每个成员变量?
java - 使用 modelmapper 映射字段时如何应用自定义逻辑
如何将自定义逻辑应用于字段映射?在这个例子中,我想计算int age
出一个LocalDate birthdate
.
java - 如何使用 modelmapper 将多个字段映射到一个目标字段
如何将多个字段映射/合并到一个字段中?像连接一个firstname
和lastname
到目的地fullname
?
java - ModelMapper:如何处理枚举的空值
我正在尝试使用 ModelMapper 将一种对象类型映射到另一种对象类型。我在我的 PropertyMap 实现中定义了以下映射:
问题是源类型方法调用source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType()
返回 String 而目标类型接受MaskType
枚举
因此我使用MaskType.fromValue()
将字符串转换为枚举。问题是失败的值,Caused by: java.lang.IllegalArgumentException
因为这是源方法调用在配置期间基本上返回 null。
那么我应该如何处理这个用例呢?
java - 如何将父类 DTO 映射到父类实体
我有以下类层次结构:
有一个 BaseFaultType 具有一些公共属性(为简单起见,我省略了其中的大部分),然后我有多种类型,它们使用附加属性扩展了 BaseFaultType。
请注意,我无法控制这些课程。
我的应用程序接收这些子类型的对象。然后我需要将这些对象映射到不同类型的实体中,即:
我正在使用 ModelMapper 来完成这项工作。请注意,我使用的 ModelMapper 配置了禁用的隐式映射(出于对此问题不感兴趣的原因):
不幸的是,这会产生仅将其initiated
属性映射到实际值的 faultMessage。属性errorId
等errorDetail
没有被映射(可能是因为它们被配置成一个完全独立的 TypeMap)
所以我的问题是 - 我如何配置 ModelMapper 以允许我定义 TypeMaps/PropertyMaps 只映射特定于子的属性,例如initiated
and并且failed
具有来自基本类型的公共属性,例如自动映射?我想在这里实现的主要目标是,我想避免在每个孩子的 TypeMap 中明确指定这些公共属性的映射,即我想避免:errorId
errorDetail
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 结合使用吗?如果是,那为什么?