问题标签 [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 库是否支持 ArrayList 或 HashSet 之类的集合?
这个问题与 AutoMapper 无关。我的问题是关于 java 中的 ModelMapper,但是我无法为 modelmapper 创建新标签,因为我的名声很小。很抱歉造成混乱。
无论如何,我的问题是modelmapper库是否支持 arraylist 或 hashset 之类的集合?它似乎不支持集合到集合的映射。这是真的吗?
java - 使用 ModelMapper 级联 PropertyMaps
考虑 6 个 POJO 类:3 个 DAO 和 3 个 DTO。
DAO:“A”、“B”、“C”
DTO:“一”、“二”、“三”
“A”包含一个“B”列表。“B”包含一个“C”列表。
“One”包含“Two”的列表。“二”包含“三”的列表。
“A”通过“A2One”映射到“One”。“B”通过“B2Two”映射到“Two”。“C”通过“C2Three”映射到三。
B2Two 和 C2Three 的代码与 A2One 非常相似。
所以这是我的问题:
目前,“A”和“One”中包含的列表之间的转换是通过自定义转换器完成的(并且它可以工作),但我正在重复 B2Two 应该执行的相同操作(将 Bs 映射到 Twos)。
当要映射列表时,是否有任何方法级联属性映射(A2One -> B2Two -> C2Three),而无需编写仅复制属性映射正在执行的转换器?
备选方案 1:使用泛型创建自定义List, List
类型映射,该类型映射转发到正确的属性/类型映射。
备选方案 2:在 A2One 中使用以下列表
ListProvider 在哪里扩展 AbstractProvider 返回新的 ArrayList()
备选方案 3:???
有任何想法吗?网站上涉及更多映射问题的文档非常差,我不一定要寻找替代框架。如果提供替代方案,它们必须允许轻松重构(因此 Dozer 和 Orika 基本上已经淘汰)。
提前致谢
更新:截至撰写本文时,ModelMapper基本上已经死了,实际上并不支持列表或映射级联,因此您将被迫为每个也可以是列表的对象编写映射和转换器。
此外,我发现 Orika 通过扩展 MapperBase 具有重构友好的映射。此外,Orika 可以透明地处理单个 bean 和 bean 列表的映射(对这两种情况使用单个映射规则)。
更新 2:在 Orika 中,可以使用 CustomMapper 对集合进行双向深度嵌套映射。这可以创建双向映射实现,并允许它们级联到其他自定义映射器。A2One 将持有 B2Two 的一个实例,并在映射“A”中包含的“B”时透明地使用它。
java - 仅将字符串属性从一个对象复制到另一个对象
我正在使用推土机,我有一个我认为推土机不支持的特殊场景。假设我有一个具有不同类型属性的类,如 String、Ingeger 和其他原始类型。现在我只想将字符串属性从这个类复制到另一个。这是一个示例代码:(它非常简短,但可以正确理解问题。)
现在我想要一些像,
任何推土机都可以吗?我熟悉推土机。但可操作其他 API,如 apache beanutil 或 ModelMapper。随意回答任何这项技术。
zend-framework - Zend 框架模型和 Doctrine 2 实体
我最近使用此处介绍的方法将 Doctrine 2 集成到我的 ZF 应用程序中:
http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/
我真的很喜欢它的工作方式,但是我对这将如何影响我过去拥有模型和映射器的方式感到困惑。
让我通过一个例子来解释混淆,
假设我们有用户实体和购买,如 ZendCast 中给出的示例
现在我有 Doctrine 使用的这些实体
在我以前有
在 application/models/ 的类中,我曾经编写作用于实体的函数(胖模型瘦控制器原理),例如,如果我想向用户发送电子邮件,我会在 Application_Model_User 中创建一个名为 sendMail 的方法。
现在我不确定是否可以向 /library/ZC/Entity 中的文件添加方法,或者这是否是一个好主意,因为 Doctrine 使用这些文件来管理数据库。
我宁愿有一个单独的模型文件,我也曾经有在多个模型上工作的映射器文件,例如,如果我想给所有非活动用户发送电子邮件,我会创建一个方法 emailInactiveUsers 到 Application_Model_UserMapper。
我现在该怎么做?
我也google了一下,我发现了这个:
它说
一个名为 Doctrine_Cli 的脚手架工具,可以非常快速地从数据库中创建模型
但是,我的 scripts/doctrine.php 文件中不存在命令“generate-models-db”。我不确定这是否是 Doctrine 在版本 2 中已停止支持的东西或什么。
java - 模型映射器是否支持使用 bean 属性列表映射 bean?
我正在尝试映射两个 JavaBean 结构(此处简化):
此外,我在包中有相同属性的相同 Bean,bar
并在两者之间进行映射,例如
其中源fooContainer
包含一个项目列表,其中一些将属性message
设置为 a String
,其中一些具有null
作为属性值。
在映射结果中,我发现列表foo.Item
似乎已正确映射到第一个属性的列表bar.Item
也正确映射。message
但是,在具有属性值的第一项之后null
,无论源属性的内容如何,后续项的message
所有属性值都将映射到。message
null
通过调试,我发现了原因:一旦目标属性值是null
消息属性路径,在 MappingEngineImpl:207 中被标记为阴影,然后在 MappingEngineImpl:142 中的后续项目中被忽略。
这是 moddelmapper 的错误还是我必须以另一种方式配置 modelmapper 才能启用 bean 属性列表的映射?
java - Jooq 结果的自定义转换器
实际上,我们正在使用fetchInto()
将结果转换为对象列表。
例如:
Employee
pojo匹配数据库表是员工。
同样,我们如何转换使用连接获取的记录?
例如:
Customer
pojo匹配的数据库表是customer
.
Employee
pojo匹配的数据库表是employee
.
java - ModelMapper 与 Jooq Record 的集成
===== POJO =====
=====我的DAO层类=====
=====错误日志=====
1) 错误mapping org.jooq.impl.RecordImpl to com.myportal.bingo.db.model.EmployeeVO
1 错误] 根本原因 java.lang.ArrayIndexOutOfBoundsException: -1
注意:
ModelMapper 在到达下面的方法时会抛出上面的异常。
private void matchSource(TypeInfo<?> sourceTypeInfo, Mutator destinationMutator)
在ImplicitMappingBuilder.java
有什么帮助吗?
validation - 使用 bean 映射器(如 ModelMapper、Orika 或 Dozer)映射验证属性路径
鉴于 bean 映射器用于将业务模型映射到 DTO 模型,反之亦然:哪一个提供了转换属性路径的简单方法?
假设我的业务逻辑报告“person.street.number”是强制性的,现在我想以正确的方式告诉客户,即“personDto.streetnumber”?
我很确定每个 bean 映射器都有这些知识,但是哪一个提供了访问这些知识的简单方法?
如果发现 ModelMapper 和 Orika 看起来很有吸引力,则基于此出色的 bean 映射器列表并在其网站上进一步阅读。
java - 平面列表到复合对象
有没有办法将扁平的 DTO 数组转换为复合嵌套对象。
目前我正在使用 modelmapper 进行域到域的转换。
数据将以非规范化的方式存在,我需要转换为正确的嵌套结构。DTO 到复合对象的转换我可以使用modelmapper来做到这一点。
我想自动将源列表转换为目标列表。因为从长远来看,手动转换不是一个可行的选择。如果可能的话,我也对推土机感兴趣。
java - 验证任何源/目标映射类型的测试是否存在
在使用像ModelMapper这样的自动映射工具时,我对“最佳实践”的理解是对代码中出现的任何源->目标映射进行单元测试,以确保映射符合您的预期。
是否有任何代码覆盖/静态分析工具可以帮助确定对于ModelMapper#map
源/目标对的每次调用,是否存在ModelMapper#map
使用相同源/目标类型调用的单元测试?