问题标签 [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 - java泛型对象中的Modelmapper
我的目标是将实体映射到 dto 对象。假设我们有这些类:
事实上,我想映射cat
到catDTO
. 对于简单的映射,它可以工作。与此类似的示例:
但对于复杂的对象,它不起作用。例如:
现在对于映射,我使用了这个命令:
当我想parentId
在 dto 对象中查看时,它会引发异常。
这是抛出的异常:
java.lang.ClassCastException:Test.modelmapper.Cat 无法转换为 Test.modelmapper.CatDTO
如果为每个对象(cat、catDTO)使用单独的类,它可以正常工作。像这样:
我认为问题是由泛型类引起的。即GenericPaging<T>
,但我不知道如何解决它。
java - 如何在模型映射器转换器中使用泛型
我正在尝试使用 aConverter
来指定 DTO 中的简单字符串字段到作为TypedString
另一个复杂对象一部分的 -Object 的映射。问题是,这TypedString
是几个实现的接口。如果我使用特定的实现,这样的转换器就可以工作,但如果我在运行时使用泛型定义类型(见下文),则不能。在这种情况下,当我调用modelmapper.map()
.
这不适合我,因为我必须为每个实现编写转换器。
是否可以在运行时使用泛型来定义目标类型?
PS:当前转换器通过反射创建一个实例,这很有效!
谢谢。
此代码有效
MyModelMapper
但是,如果我将其添加到(即)中,这将不起作用addConverter(new ModelMapperTypedStringConverter<ParticularDestType>())
!!!
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.
modelmapper - Modelmapper 循环映射
我有各自的 DTO 的父类和子类,如下所示
当我尝试将 Parent 映射到 ParentDto 时,我得到了 StackOverflowError。
请帮助我解决问题。
java - modelmapper 跳过嵌套对象的属性
转换A -> ADto
时,我想跳过C -> CDto
. 我的印象是,只要在 之间进行转换,以下映射器就会起作用B -> BDto
,但事实并非如此;所以下面的映射器在隐藏时没有帮助(A -> ADto)
......
实现这一目标的方法应该是什么?
java - 模型映射器 - 如何映射不兼容的类型
我有实体User
,Event
它们之间有many to many
关系。如果我尝试将用户对象从 Controller 返回到 REST API,则会导致循环依赖。
我决定使用DTOs
我将使用的地方,而不是List<Event>
仅仅List<Integer>
代表事件对象的 id。
但是,如果我尝试创建 custom PropertyMap
,它就不起作用。你推荐不同的方法,怎么做?
事件实体
用户实体
用户控制器
最后,我的PropertyMap类
如果我尝试使用 rest 获取,这是一个例外:
java - 如何使用 ModelMapper 的 PropertyMap 继承
我一直在使用ModelMapper
将Identity
对象(实体)与DTO
对象进行转换。我想在一个通用类中为所有实体()实现通用属性转换,并在每个实体(对于实体)GenericEToDtoPropertyMap
的单独子类中实现显式属性转换。为了更清楚,这是我的代码:PersonEToDTOPropertyMap
Person
通用属性映射:
实体 Person 的特定属性映射:
属性图的使用:
问题是通用转换不适用。在我的情况下person.oid
不会被复制到personDto.id
. 仅当我删除该部分时它才能正常工作:
从GenericEToDtoPropertyMap.configure()
方法中取出并放入PersonEToDTOPropertyMap.configure()
方法中。
我想,它与ModelMapper
使用Reflection
来实现映射有关,但如果我可以在我的属性映射中使用继承会很好。你知道怎么做吗?
java - 如何使用 ModelMapper 处理 Set 到 List 的转换
我有以下课程:
我创建了两个PropertyMaps
(使用ModelMapper
),一个用于从 DTO 到 DTO 的每次转换
添加PropertyMaps
到ModelMapper
创建以下错误:
引起:org.modelmapper.ConfigurationException:ModelMapper配置错误:
1) 无效的源方法 java.util.List.add()。确保该方法的参数为零并且不返回 void。
我想我不能List.add()
在PropertyMap
.
那么,实现 List 到 Set 和向后转换的最佳方法是ModelMapper
什么?
java - ModelMapper - 无法将 ArrayList 转换为 List
我有以下豆子
我正在使用 ModelMapper 映射List<TicketDto>
到List<Ticket>
类似
但它会抛出以下异常和 Stacktrace
它似乎从 Ticket -> TicketDto 映射它,但是当 TicketDto -> Ticket 时它失败了。
任何帮助是极大的赞赏。
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?