У меня есть Y внутри X и ZDTO внутри YDTO, но внутри Y нет Z.
Я хочу сопоставить X с XDTO с помощью такого метода, как XDTO xToXDTO(X x, Z z)
Дано X,Y,Z как следует:
public class X {
private Y y;
private Integer xa;
private Integer xb;
}
public class Y {
private Integer ya;
private Integer yb;
}
public class Z {
private Integer za;
private Integer zb;
}
И их DTO следующим образом:
public class XDTO {
private YDTO y;
private Integer xa;
private Integer xb;
}
public class YDTO {
private ZDTO z;
private Integer ya;
private Integer yb;
}
public class ZDTO {
private Integer za;
private Integer zb;
}
У меня есть класс Mapper:
@Mapper
public interface XYZMapper {
XDTO xToXDTO(X x, Z z);
YDTO yToYDTO(Y y, Z z);
ZDTO zToZDTO(Z z);
}
Я ожидаю, что преобразователь вызовет yToYDTO для сопоставления Y с YDTO, но когда я вижу сгенерированный код, я вижу, что он создал yToYDTO1 и не использует YDTO yToYDTO(Y y, Z z)
public XDTO xToXDTO(X x, Z z) {
if ( x == null && z == null ) {
return null;
}
XDTO xDTO = new XDTO();
if ( x != null ) {
xDTO.setY( yToYDTO1( x.getY() ) );
xDTO.setXa( x.getXa() );
xDTO.setXb( x.getXb() );
}
return xDTO;
}
Источник: https://stackoverflow.com/questions/781 ... ple-source
Карта Mapstruct, вложенная из нескольких источников ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как использовать MapStruct только с примитивными свойствами в качестве источников?
Anonymous » » в форуме JAVA - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-