【问题标题】:Mapstruct -empty setMapstruct - 空集
【发布时间】:2019-08-23 04:30:07
【问题描述】:

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

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

简单代码:

实体:

public class Employee{

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

地图结构:

@Mapper(componentModel = "spring")
public interface EmployeeMapper{
EmployeeDTO toDTOFromEntity(Employee employee);
}

【问题讨论】:

    标签: java mapstruct


    【解决方案1】:

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

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

    所以一个空集的新哈希集不会导致空指针?

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2018-03-30
      • 1970-01-01
      • 2021-08-18
      • 2021-08-16
      • 2020-02-08
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      相关资源
      最近更新 更多