模型映射器中的延迟初始化异常

Nay*_*yak 5 java hibernate modelmapper

ModelmapperLazyInitializationException在从实体转换为 dto 时给出。

有什么办法可以禁用它。如果我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) 没有会话

smi*_*ile 7

我从这里找到了解决方案:

https://github.com/modelmapper/modelmapper/issues/97

modelMapper.getConfiguration().setPropertyCondition(new Condition<Object, Object>() {
      public boolean applies(MappingContext<Object, Object> context) {
        return !(context.getSource() instanceof PersistentCollection);
      }
    });
Run Code Online (Sandbox Code Playgroud)