Mapstruct - пустой набор - PullRequest
       10

Mapstruct - пустой набор

0 голосов
/ 02 апреля 2019

Я использую Mapstruct в своем проекте.В одной из сущностей у меня есть структура set [oneToMany].Когда я получаю все данные, используя findAll () в хранилище, если нет привязок, тогда возвращается пустой HashSet.

Mapstuct отображает сущности в DTO, и когда он встречает пустой Set, он выдает исключение NullPointException,В созданном преобразователе существует условие, что если HashSet имеет значение null, вернуть nulla, но здесь пустая коллекция.Как отобразить сущности в DTO, чтобы в случае пустой коллекции она возвращала nulla?

Просто код:

Entity:

public class Employee{

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

Mapstruct:

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

1 Ответ

0 голосов
/ 02 апреля 2019

Я должен что-то упустить, но mapstruct генерирует код, подобный этому:

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

То есть новый Hashset пустого набора не вызовет нулевой указатель?

...