【发布时间】:2019-06-22 13:08:10
【问题描述】:
Modelmapper 在从实体转换为 dto 时提供LazyInitializationException。
有什么办法可以禁用它。如果在事务块内调用modelmapper.map,它工作正常,但它正在加载我根本不想要的所有惰性对象。
如果懒惰,我想根本不加载它。
转换器 org.modelmapper.internal.converter.MergingCollectionConverter@6a51c12e 未能将 org.hibernate.collection.internal.PersistentSet 转换为 java.util.Set。
原因:org.modelmapper.MappingException:ModelMapper 映射错误:
1) 无法从com.app.flashdiary.entity.Vendor.getApproved()获取值
原因:org.hibernate.LazyInitializationException:无法初始化代理 [com.app.flashdiary.entity.Vendor#1] - 没有会话 在 org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:169)
【问题讨论】:
-
如果您不需要 DTO 中那些延迟加载的集合,只需指示您的映射器不要使用这些集合,您就不会看到更多
LazyInitializationExceptions。 -
你能给我一个简单的例子吗。我是modelmapper的新手,不知道如何跳过全局映射器。
-
我无法帮助您使用 modelMapper - 没有使用过它,但我确信必须有一种方法让它知道应该跳过某些属性。您必须自己找到解决方案。最简单的解决方案是从映射目标对象(您提到的 DTO)中删除不需要的属性。那么您就不需要指示映射器跳过这些属性,因为它们已被删除。
标签: java hibernate modelmapper