easy-mapper icon indicating copy to clipboard operation
easy-mapper copied to clipboard

DTO 里面的 List<XXXX> 也需要映射吗?

Open TuWei1992 opened this issue 8 years ago • 4 comments

RT, 如果是就太过分了吧...

TuWei1992 avatar Oct 20 '17 04:10 TuWei1992

你好,能具体说下需求吗?如果是BEAN中的List<>,只要from和to的BEAN类型一致可以,因为是引用拷贝。

neoremind avatar Oct 20 '17 06:10 neoremind

@neoremind

@neoremind 下面是我的转换代码

 MapperFactory.getCopyByRefMapper()
                .mapClass(ServiceCenterMemberEntity.class, ServiceCenterMemberDTO.class)
                .register();

        ServiceCenterDTO dto = MapperFactory.getCopyByRefMapper()
                .mapClass(ServiceCenterEntity.class, ServiceCenterDTO.class)
                .exclude("content")
                .register()
                .map(entity, ServiceCenterDTO.class);

下面是报错信息

com.baidu.unbiz.easymapper.exception.MappingCodeGenerationException: No appropriate mapping strategy found for FieldMap[members(List<ServiceCenterMemberEntity>)-->members(List<ServiceCenterMemberDTO>)]
	at com.baidu.unbiz.easymapper.mapping.DefaultMappingStrategy.generateMappingCode(DefaultMappingStrategy.java:48)
	at com.baidu.unbiz.easymapper.codegen.MappingCodeGenerator.generateMappingCode(MappingCodeGenerator.java:141)
	at com.baidu.unbiz.easymapper.codegen.MappingCodeGenerator.addMapMethod(MappingCodeGenerator.java:106)
	at com.baidu.unbiz.easymapper.codegen.MappingCodeGenerator.build(MappingCodeGenerator.java:68)

Entity:

    /**
     * 服务中心人员
     */
    @org.hibernate.annotations.ForeignKey(name = "none")
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "serviceCenterId")
    private List<ServiceCenterMemberEntity> members;

DTO:

    /**
     * 服务中心人员
     */
    @Valid
    @ApiModelProperty(value = "服务中心人员")
    private List<ServiceCenterMemberDTO> members;

TuWei1992 avatar Oct 20 '17 10:10 TuWei1992

I will look into the problem later. Sorry for the inconvenience brought to you.

neoremind avatar Oct 22 '17 15:10 neoremind

你好,不好意思,回复晚了。这个问题我实验了下,目前是不支持的,无法找到嵌套类型的List<A>到List<B>的映射,即使已经注册了A->B的,目前也是不支持的。

neoremind avatar Dec 05 '17 12:12 neoremind