Mapstruct-空集

时间:2019-04-01 23:03:14

标签: java mapstruct

我在项目中使用Mapstruct。在其中一个实体中,我具有设置的[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);
}

1 个答案:

答案 0 :(得分:0)

我必须错过一些东西,但是mapstruct会生成这样的代码:

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

因此,空集的新哈希集不会导致空指针吗?