Mapstruct -empty集

问题描述 投票:0回答:1

我在我的项目中使用Mapstruct。在其中一个实体中,我有set [oneToMany]结构。当我使用存储库中的findAll()检索所有数据时,如果没有绑定,则返回空的HashSet。

Mapstuct映射DTO上的实体,当遇到空Set时,它会给出NullPointException异常。在创建的映射器中,有一个条件,如果HashSet为null,则返回nulla,但这里是一个空集合。如何在DTO上映射实体,以便在空集合的情况下返回nulla?

只需代码:

实体:

public class Employee{

....
private Set workplaces;
...
}

Mapstruct:

@Mapper(componentModel = "spring")
public interface EmployeeMapper{
EmployeeDTO toDTOFromEntity(Employee employee);
}
java mapstruct
1个回答
0
投票

我必须错过一些东西,但mapstruct生成如下代码:

if ( set != null ) {
    employeeDTO.setWorkplaces( new HashSet( set ) );
} else {
    employeeDTO.setWorkplaces( null );
}

那么一个空集的新Hashset不会导致nullpointer?

© www.soinside.com 2019 - 2024. All rights reserved.