我在我的项目中使用Mapstruct。在其中一个实体中,我设置了oneToMany结构。当我在存储库中使用findAll ()检索所有数据时,如果没有绑定,则返回一个空的HashSet。
Mapstuct将实体映射到DTO上,当它遇到空集时,它会给出NullPointException异常。在创建的映射器中有一个条件,如果HashSet为null,则返回nulla,但这里是一个空集合。如何在DTO上映射实体,以便在空集合的情况下返回nulla?
只需编写代码:
实体:
public class Employee{
....
private Set workplaces;
...
}Mapstruct:
@Mapper(componentModel = "spring")
public interface EmployeeMapper{
EmployeeDTO toDTOFromEntity(Employee employee);
}发布于 2019-04-02 23:25:04
我肯定遗漏了一些东西,但是mapstruct会生成这样的代码:
if ( set != null ) {
employeeDTO.setWorkplaces( new HashSet( set ) );
} else {
employeeDTO.setWorkplaces( null );
}因此,空集的新Hashset不会导致空指针?
https://stackoverflow.com/questions/55464745
复制相似问题