我在我的项目中使用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);
}
我必须错过一些东西,但mapstruct生成如下代码:
if ( set != null ) {
employeeDTO.setWorkplaces( new HashSet( set ) );
} else {
employeeDTO.setWorkplaces( null );
}
那么一个空集的新Hashset不会导致nullpointer?