问题标签 [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 中的同一对象
如何在ModelMapper中表达以下内容:要在目标中填充一个字段,如果它是非空的,我想使用源的属性A,否则使用属性B。
示例(如果您不喜欢技术描述,请使用下面的代码):假设我想使用 ModelMapper从源类SourceBigThing
到目标类。有两个属性,一个是被调用Target
的,一个是被调用的。这两个属性是不同的类型和。这两个东西都有一个叫做 的属性。A可以有红色或绿色,但不能两者都有(另一个为空)。我想将 Small Things 的名称映射到目标类的属性。SourceBigThing
red
green
RedSmallThing
GreenSmallThing
name
SourceBigThing
示例代码:
我试图玩弄条件,但你不能有两个映射到同一个目标,因为 ModelMapper 会为重复映射抛出异常:
您可以在此 gist中找到失败的 TestNG-Unit-Test 。
java - 在 ModelMapper 中全局跳过字段
我正在使用 ModelMApper 将对象从 DTO 映射到 Impl - 在反序列化对象时。这是结合 JAxRS 完成的。当用户发出 POST/PUT 请求时,我不希望“id”被映射。
我需要跳过所有映射的“id”字段。我不想一一做这件事,因为不一定有所有类的显式映射。我如何配置映射器以跳过所有 DTO 到 Impls 映射的所有“id”字段。
谢谢
java - ModelMapper:如何将此 json 映射到 Java?
我正在尝试使用 ModelMapper 来映射以下 json,如此处所述http://modelmapper.org/user-manual/gson-integration/但我得到了 NullPointerException 并且我不知道出了什么问题。请问有什么提示吗?
java - ModelMapper:如何将 java.util.Map 映射到 POJO?
如何将 java.util.Map 映射到 POJO?
以下测试给了我一个配置错误。
似乎打开了一个类似的问题,但没有解决https://github.com/jhalterman/modelmapper/issues/116。
测试:
错误:
java - 如何在同一个映射中使用 Converter 和 PropertyMap?
我正在尝试使用 Converter 指定成员列表的映射,但我还想使用 PropertyMap 来映射其余字段(在下面的示例中,它只是应该映射到 'aa' 的字段'a') .
是否可以在 Converter 中或仅在 PropertyMap 中指定所有映射?如果没有,我如何在同一个模型映射器中使用两者?
谢谢。
PS 我按照这个例子http://bit.ly/10dqanw来制作我的测试课。
java - 在托管 bean 中使用 ModelMapper 库的自定义映射导致 NullPointerException
NullPointerException
当我尝试通过在一些容器管理的对象中创建自定义映射器来添加映射时,我得到了。我在@Stateless EJB 服务和@RequestScoped 休息服务中尝试过。错误是相似的并且发生在一行中:
它是一个错误吗?我假设 mapper 正在尝试在托管 bean 上做一些反射工作,因此 get NullPointerException
。
这是我的代码:
这是错误:
c# - Web Api ViewModel 到 DTO 到 ViewModel
我正在开始一个新的 Web API 项目并试图仍然掌握 DTO / View Model 的概念。我知道你的 DTO 应该只保存数据,并且应该在 DTO 最终到达之前在 DTO 上执行任何所需的业务规则。控制器被转换(映射)到适当的视图模型。
但是,在我的情况下,PutUser 操作需要来自客户端的 Json 形式的整个“UpdateUserViewModel”:
在我的业务层中,我现在将此视图模型用户映射到 userDTO 并执行任何业务逻辑并将 userDTO 对象返回给 Action,然后将其映射到视图模型并作为响应返回,这是正确的方法还是应该我的经理只期望一个 DTO 对象,基本上 ViewModel -> DTO 的映射应该发生在哪里 -> ViewModel ?
如果这是正确的方法,那么在不使用自动映射器的情况下将 ViewModel 实体映射到 DTO 和反向的最佳方法是什么?
modelmapper - ModelMapper 会创建中间对象吗?
从文档中的示例...
map().customer.setName(source.getPerson().firstName);
如果“客户”不存在(为空),ModelMapper 将创建一个新的客户对象并自动设置客户,还是我必须事先创建它?
java - 如何从地图映射到列表
我正在做一个项目,我需要从Map<String, Object>
第二个参数应该是 aString
或的层次结构中进行映射Map<String, Object>
。到目前为止,ModelMapper 工作得很好,但我在进行特定转换时遇到了麻烦。鉴于以下情况, whereModel
只是一个标记接口:
假设Organization
实现了我的标记接口Model
但在其他方面是任意结构的,我希望能够将以下内容映射到Client
:
总而言之:我如何让 ModelMapper 删除映射键并在推入组织属性时仅使用值列表?如果做不到这一点,组织财产就会空出来。您可能会认为我有充分的理由希望这样做,而且是一个糟糕的例子!
提前感谢您的意见!
编辑
我试图构建一个Converter
可以管理从 aMap
到 a 的转换Collection<Model>
,但无济于事。鉴于:
这有两个问题:
- 显然 ModelMapper 不考虑继承,因此当任何实现
Map
作为源给出时,转换器不会运行。例如,如果我将转换器更改为接受HashMap
并将 aHashMap
作为源传递,那么它可以工作。 context.getGenericDestinationType()
没有通用信息的返回List
或类。Set
那么 ModelMapper 是如何在正常情况下构建复杂的模型图的呢?
java - ModelMapper: Mix implicit and explicit mapping?
In order to write the minimum amount of code required, I'm trying to let ModelMapper generate its implicit mapping and only write explicit property mappings for those properties that it couldn't auto-map.
If I let ModelMapper generate an implicit mapping using:
it complains about setSomeId
having multiple possible mappings. I then tried to fix just that using:
However, I found that ModelMapper still complains, because an exception is actually thrown on createTypeMap
, so it doesn't have a chance to reach my custom mapping code.
If I invert both statements, I get an error:
java.lang.IllegalStateException: A TypeMap already exists for class SourceType and class DestType
If I leave out createTypeMap
completely, ModelMapper complains about missing mappings for all other properties of the DestType
(those who it was able to map automatically with createTypeMap
).
I found no explicit clue in the Documentation whether mixing implicit with explicit mappings is supported and how it's done.
Can anyone help?