我正在使用mapstruct更新现有的bean。下面是我的豆子。如您所见,我的Entity bean有一个AnotherEntity bean的集合。
public class Entity
{
private Integer id;
private String name;
private List<AnotherEntity> anotherEntityList = new ArrayList<AnotherEntity>();
//getters & setters
}
public class AnotherEntity
{
private Integer id;
private String text;
//getters & setters
}
下面是我定义映射的方式。
Entity updateEntityWithEntity(final Entity sourceEntity, @MappingTarget final Entity targetEntity);
在更新时,我希望mapstruct跳过AnotherEntity bean中的id属性。 目前,它正在清除现有集合,并使用源中的值创建一个新集合。
如果我添加以下内容
@Mapping(target = "anotherEntityList", ignore = true)
它忽略了整个集合。但是我想要收集但只忽略id属性。这样的事情。 @Mapping(target = "anotherEntityList.id", ignore = true)
感谢您的帮助!
答案 0 :(得分:1)
MapStruct无法生成列表映射。它不会知道用户的实际意图。请查看this以获得更多说明。
但是假设列表都是有序的,并且元素0需要映射到目标元素0、1到1等。
您可以执行以下操作:
MemAvailable: 521659112 kB