gpt4 book ai didi

java - MapStruct 按原样映射嵌套 bean

转载 作者:行者123 更新时间:2023-11-30 06:47:31 24 4
gpt4 key购买 nike

我的问题是如何将包含嵌套对象的对象按原样映射到 DTO,而不是嵌套对象中的值,例如,如果有 2 个这样的类:

    public class TestClass {
@Id
private String id;

@Field("field1")
private String field1;

@Field("field2")
private Long field2;

@Field("nestedClass")
private NestedClass;

//getter & setter
}

public class NestedClass {
//fields and getter and setter for it
}

DTO classes looks like :

public class TestClassDTO {
private String id;
private String field1;
private Long field2;
private NestedClassDTO ;

//getter & setter
}

public class NestedClassDTO {
//fields and getter and setter for it
}


@Mapper(componentModel = "spring", uses = {})
public interface TestClassMapper {

TestClassDTO TestClassToTestClassDTO(TestClass TestClass);

TestClass TestClassDTOToTestClass(TestClassDTO TestClassDTO);

NestedClass NestedClassDTOToNestedClass(NestedClassDTO NestedClassDTO);

NestedClassDTO NestedClassToNestedClassDTO(NestedClass NestedClass);

}

调用 TestClassDTOToTestClass() 并发送 TestClassDTO 包含 NestedClassDTO 后..它返回带有 null NestedClass 的 TestClass ..是否可以在不编写我自己的映射器的情况下映射它?

SH

最佳答案

我找到了:)

映射器类应该使用这样的嵌套类:

    @Mapper(componentModel = "spring", uses = {NestedClassMapper.class})
public interface TestClassMapper {

TestClassDTO TestClassToTestClassDTO(TestClass TestClass);

TestClass TestClassDTOToTestClass(TestClassDTO TestClassDTO);

NestedClass NestedClassDTOToNestedClass(NestedClassDTO NestedClassDTO);

NestedClassDTO NestedClassToNestedClassDTO(NestedClass NestedClass);

}

关于java - MapStruct 按原样映射嵌套 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43438518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com