Java 和 MapStruct
Java and MapStruct
我如何初始化字段中的列表并在此列表中添加一些值?
@Mapper(componentModel = "spring")
public interface MapStructAdapter {
@Mapping(source = "some", target = "some")
@Mapping(expression = "java(new java.util.ArrayList<LegalEntity>())", target = "legalEntities")
@Mapping(expression = "java(new my.some.package.LegalEntity())", target = "getLegalEntities().add()")
@Mapping(source = "entityShortName", target = "legalEntities.legalEntity.shortName")
Representative convert(Message message);
}
您应该能够在映射器中添加自己的转换方法。
https://mapstruct.org/documentation/stable/reference/html/#adding-custom-methods
示例,
@Mapper(componentModel = "spring")
public interface MapStructAdapter {
@Mapping(source = "some", target = "some")
@Mapping(source = "entityShortName", target = "legalEntities")
Representative convert(Message message);
default List<LegalEntity> toLegalEntities(String entityShortName) {
LegalEntity legalEntity = new LegalEntity();
legalEntity.setShortName(entityShortName);
return Collections.singletonList(legalEntity);
}
}
只需向您的映射器添加一个(工厂)方法。没有参数和 return 列表。可以是默认方法,也可以是s class 你@Mapper#uses
中的方法
我如何初始化字段中的列表并在此列表中添加一些值?
@Mapper(componentModel = "spring")
public interface MapStructAdapter {
@Mapping(source = "some", target = "some")
@Mapping(expression = "java(new java.util.ArrayList<LegalEntity>())", target = "legalEntities")
@Mapping(expression = "java(new my.some.package.LegalEntity())", target = "getLegalEntities().add()")
@Mapping(source = "entityShortName", target = "legalEntities.legalEntity.shortName")
Representative convert(Message message);
}
您应该能够在映射器中添加自己的转换方法。
https://mapstruct.org/documentation/stable/reference/html/#adding-custom-methods
示例,
@Mapper(componentModel = "spring")
public interface MapStructAdapter {
@Mapping(source = "some", target = "some")
@Mapping(source = "entityShortName", target = "legalEntities")
Representative convert(Message message);
default List<LegalEntity> toLegalEntities(String entityShortName) {
LegalEntity legalEntity = new LegalEntity();
legalEntity.setShortName(entityShortName);
return Collections.singletonList(legalEntity);
}
}
只需向您的映射器添加一个(工厂)方法。没有参数和 return 列表。可以是默认方法,也可以是s class 你@Mapper#uses
中的方法