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

java - ModelMapper 库是否支持 ArrayList 或 HashSet 之类的集合?

这个问题与 AutoMapper 无关。我的问题是关于 java 中的 ModelMapper,但是我无法为 modelmapper 创建新标签,因为我的名声很小。很抱歉造成混乱。

无论如何,我的问题是modelmapper库是否支持 arraylist 或 hashset 之类的集合?它似乎不支持集合到集合的映射。这是真的吗?

0 投票
2 回答
7247 浏览

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”时透明地使用它。

0 投票
1 回答
455 浏览

java - 仅将字符串属性从一个对象复制到另一个对象

我正在使用推土机,我有一个我认为推土机不支持的特殊场景。假设我有一个具有不同类型属性的类,如 String、Ingeger 和其他原始类型。现在我只想将字符串属性从这个类复制到另一个。这是一个示例代码:(它非常简短,但可以正确理解问题。)

现在我想要一些像,

任何推土机都可以吗?我熟悉推土机。但可操作其他 API,如 apache beanutil 或 ModelMapper。随意回答任何这项技术。

0 投票
1 回答
1402 浏览

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了一下,我发现了这个:

http://net.tutsplus.com/tutorials/php/zend-framework-from-scratch-models-and-integrating-doctrine-orm/

它说

一个名为 Doctrine_Cli 的脚手架工具,可以非常快速地从数据库中创建模型

但是,我的 scripts/doctrine.php 文件中不存在命令“generate-models-db”。我不确定这是否是 Doctrine 在版本 2 中已停止支持的东西或什么。

0 投票
1 回答
1637 浏览

java - 模型映射器是否支持使用 bean 属性列表映射 bean?

我正在尝试映射两个 JavaBean 结构(此处简化):

此外,我在包中有相同属性的相同 Bean,bar并在两者之间进行映射,例如

其中源fooContainer包含一个项目列表,其中一些将属性message设置为 a String,其中一些具有null作为属性值。

在映射结果中,我发现列表foo.Item似乎已正确映射到第一个属性的列表bar.Item也正确映射。message但是,在具有属性值的第一项之后null,无论源属性的内容如何,​​后续项的message所有属性值都将映射到。messagenull

通过调试,我发现了原因:一旦目标属性值是null消息属性路径,在 MappingEngineImpl:207 中被标记为阴影,然后在 MappingEngineImpl:142 中的后续项目中被忽略。

这是 moddelmapper 的错误还是我必须以另一种方式配置 modelmapper 才能启用 bean 属性列表的映射?

0 投票
1 回答
4551 浏览

java - Jooq 结果的自定义转换器

实际上,我们正在使用fetchInto()将结果转换为对象列表。

例如:

Employeepojo匹配数据库表是员工。

同样,我们如何转换使用连接获取的记录?

例如:

Customerpojo匹配的数据库表是customer.

Employeepojo匹配的数据库表是employee.

0 投票
1 回答
2186 浏览

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

有什么帮助吗?

0 投票
1 回答
939 浏览

validation - 使用 bean 映射器(如 ModelMapper、Orika 或 Dozer)映射验证属性路径

鉴于 bean 映射器用于将业务模型映射到 DTO 模型,反之亦然:哪一个提供了转换属性路径的简单方法?

假设我的业务逻辑报告“person.street.number”是强制性的,现在我想以正确的方式告诉客户,即“personDto.streetnumber”

我很确定每个 bean 映射器都有这些知识,但是哪一个提供了访问这些知识的简单方法?

如果发现 ModelMapper 和 Orika 看起来很有吸引力,则基于此出色的 bean 映射器列表并在其网站上进一步阅读。

0 投票
0 回答
343 浏览

java - 平面列表到复合对象

有没有办法将扁平的 DTO 数组转换为复合嵌套对象。

目前我正在使用 modelmapper 进行域到域的转换。

数据将以非规范化的方式存在,我需要转换为正确的嵌套结构。DTO 到复合对象的转换我可以使用modelmapper来做到这一点。

我想自动将源列表转换为目标列表。因为从长远来看,手动转换不是一个可行的选择。如果可能的话,我也对推土机感兴趣。

0 投票
0 回答
214 浏览

java - 验证任何源/目标映射类型的测试是否存在

在使用像ModelMapper这样的自动映射工具时,我对“最佳实践”的理解是对代码中出现的任何源->目标映射进行单元测试,以确保映射符合您的预期。

是否有任何代码覆盖/静态分析工具可以帮助确定对于ModelMapper#map源/目标对的每次调用,是否存在ModelMapper#map使用相同源/目标类型调用的单元测试?