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

java - java泛型对象中的Modelmapper

我的目标是将实体映射到 dto 对象。假设我们有这些类:

事实上,我想映射catcatDTO. 对于简单的映射,它可以工作。与此类似的示例:

但对于复杂的对象,它不起作用。例如:

现在对于映射,我使用了这个命令:

当我想parentId在 dto 对象中查看时,它会引发异常。

这是抛出的异常:

java.lang.ClassCastException:Test.modelmapper.Cat 无法转换为 Test.modelmapper.CatDTO

如果为每个对象(cat、catDTO)使用单独的类,它可以正常工作。像这样:

我认为问题是由泛型类引起的。即GenericPaging<T>,但我不知道如何解决它。

0 投票
0 回答
1740 浏览

java - 如何在模型映射器转换器中使用泛型

我正在尝试使用 aConverter来指定 DTO 中的简单字符串字段到作为TypedString另一个复杂对象一部分的 -Object 的映射。问题是,这TypedString是几个实现的接口。如果我使用特定的实现,这样的转换器就可以工作,但如果我在运行时使用泛型定义类型(见下文),则不能。在这种情况下,当我调用modelmapper.map().

这不适合我,因为我必须为每个实现编写转换器。

是否可以在运行时使用泛型来定义目标类型?

PS:当前转换器通过反射创建一个实例,这很有效!

谢谢。

此代码有效

MyModelMapper但是,如果我将其添加到(即)中,这将不起作用addConverter(new ModelMapperTypedStringConverter<ParticularDestType>())!!!

0 投票
1 回答
1365 浏览

java - Strange behavior of ModelMapper used in Spring with HibernateTemplate

I have really strange behavior of ModelMapper framework combined with Spring and Hibernate 4. And after 2 days of searching through SO I still a little bit confused and can't figure out the reason of such strange behavior.

I have 3 classes: class A, class B and User class.

User class:

Class B:

Class A:

In my controller I have below code:

And the problem is in first run query after database was dropped and recreated. I drop database and run my application, and add new objects of A and B class. And then, when I try to list all objects that are in my table, ModelMapper returns null in place of User class object. Every first run it returns null. When I restart application users are mapped properly. Moreover, when I use UserController to return all users, all users returned corectly and al properties are properly mapped. More itnerresting, that objects of class B contain relationship of class A and these object of class A are returned properly even in first run of Application.

These entities are loaded Eagerly, so hibernate must load it. When I use standard converter to convert A to ADto everything works fine. Converter contains hardcoded line:

I insert default users in my ApplicationStartUp class.

My hibernate config properties:

ModelMapper config:

POM:

Can anybody help me to figure it out? Any ideas what can I check and what can be a reason to such strange behavior?

P.S. whant to udnerline just with User class. Other classes are working fine.

0 投票
1 回答
1450 浏览

modelmapper - Modelmapper 循环映射

我有各自的 DTO 的父类和子类,如下所示

当我尝试将 Parent 映射到 ParentDto 时,我得到了 StackOverflowError。

请帮助我解决问题。

0 投票
1 回答
6470 浏览

java - modelmapper 跳过嵌套对象的属性

转换A -> ADto时,我想跳过C -> CDto. 我的印象是,只要在 之间进行转换,以下映射器就会起作用B -> BDto,但事实并非如此;所以下面的映射器在隐藏时没有帮助(A -> ADto)......

实现这一目标的方法应该是什么?

0 投票
1 回答
6099 浏览

java - 模型映射器 - 如何映射不兼容的类型

我有实体UserEvent它们之间有many to many关系。如果我尝试将用户对象从 Controller 返回到 REST API,则会导致循环依赖。

我决定使用DTOs我将使用的地方,而不是List<Event>仅仅List<Integer>代表事件对象的 id。

但是,如果我尝试创建 custom PropertyMap,它就不起作用。你推荐不同的方法,怎么做?

事件实体

用户实体

用户控制器

最后,我的PropertyMap

如果我尝试使用 rest 获取,这是一个例外:

0 投票
2 回答
3298 浏览

java - 如何使用 ModelMapper 的 PropertyMap 继承

我一直在使用ModelMapperIdentity对象(实体)与DTO对象进行转换。我想在一个通用类中为所有实体()实现通用属性转换,并在每个实体(对于实体)GenericEToDtoPropertyMap的单独子类中实现显式属性转换。为了更清楚,这是我的代码:PersonEToDTOPropertyMapPerson

通用属性映射:

实体 Person 的特定属性映射:

属性图的使用:

问题是通用转换不适用。在我的情况下person.oid不会被复制到personDto.id. 仅当我删除该部分时它才能正常工作:

GenericEToDtoPropertyMap.configure()方法中取出并放入PersonEToDTOPropertyMap.configure()方法中。

我想,它与ModelMapper使用Reflection来实现映射有关,但如果我可以在我的属性映射中使用继承会很好。你知道怎么做吗?

0 投票
1 回答
4423 浏览

java - 如何使用 ModelMapper 处理 Set 到 List 的转换

我有以下课程:

我创建了两个PropertyMaps(使用ModelMapper),一个用于从 DTO 到 DTO 的每次转换

添加PropertyMapsModelMapper创建以下错误:

引起:org.modelmapper.ConfigurationException:ModelMapper配置错误:

1) 无效的源方法 java.util.List.add()。确保该方法的参数为零并且不返回 void。

我想我不能List.add()PropertyMap.

那么,实现 List 到 Set 和向后转换的最佳方法是ModelMapper什么?

0 投票
1 回答
7053 浏览

java - ModelMapper - 无法将 ArrayList 转换为 List

我有以下豆子

我正在使用 ModelMapper 映射List<TicketDto>List<Ticket>类似

但它会抛出以下异常和 Stacktrace

它似乎从 Ticket -> TicketDto 映射它,但是当 TicketDto -> Ticket 时它失败了。

任何帮助是极大的赞赏。

0 投票
1 回答
1595 浏览

java - ModelMapper 异常 - 不能转换为 org.modelmapper.internal.Mutator

我得到以下异常这个异常。我正在使用 modelmapper 在我的项目中的类之间进行转换。

Deal 和 DealDocument 类是相同的。Deal文档类如下:

你认为可能是什么问题?它似乎随机出现,就像它工作正常,但随着时间的推移系统降级

2017-01-31 15:35:45.168 错误 21301 --- [http-nio-8080-exec-8] oaccC[.[.[/].[dispatcherServlet]:Servlet.service() 用于 servlet [dispatcherServlet]带有路径 [] 的上下文抛出异常 [请求处理失败;嵌套异常是 org.modelmapper.MappingException:ModelMapper 映射错误:1) 错误映射 com.acme.sugoi.marketplace.model.Deal 到 com.acme.sugoi.marketplace.model.DealDocument 1 错误],根本原因是 java.lang。 ClassCastException: org.modelmapper.internal.PropertyInfoImpl$MethodAccessor 不能在 org.modelmapper.internal.PropertyInfoRegistry.mutatorFor(PropertyInfoRegistry.java:92) 的 org.modelmapper.internal.PropertyInfoResolver$3.propertyInfoFor 中转换为 org.modelmapper.internal.Mutator (PropertyInfoResolver.java:75) 在 org.modelmapper.internal.PropertyInfoResolver$3。

* 更新 *: 这就是我配置模型映射器的方式:modelMapper.getConfiguration().setAmbiguityIgnored(false).setFieldMatchingEnabled(true).setMatchingStrategy(MatchingStrategies.STRICT);

我的 Deal 类用 @Data (from lombok) 注释,所以所有属性都可以通过公共方法访问

这是否与ModelMapper 中的 ClassCastException 相关:EnhancerByModelMapper cannot be cast