Spring hateoas Ресурсы, не возвращающие данные в формате HAL, в виде, если коллекция пуста - PullRequest
0 голосов
/ 18 мая 2019

У меня есть этот сервисный метод, который отвечает за выборку заданий из БД и возврат их в формат HAL.

public Resources<Resource<UserJob>> getJobs(String userUniqueId) {
    Set<UserJob> userJobs = userJobDao.findByUserUniqueId(userUniqueId);    
    List<Resource<UserJob>> resources = userJobs.stream().map(userJob -> jobResourceAssembler.toResource(userJob)).collect(Collectors.toList());

    Resources<Resource<UserJob>> collectionResources = new Resources<>(resources);

    return collectionResources;

}

Итак, я использую stream API для преобразования Resource в Resources. Это работает нормально, пока у нас нет списка доступных

{
    "_embedded": {
        "userJobs": [
            {//data
            },
            {//data
            }
         ]
     }
}

Но если список (userJobs) пуст, возвращается ответ:

[]

не должно ли быть?

{
    "_embedded": {
        "userJobs": [ ]
     }
}

Ассемблер ресурсов -

@Component
public class UserJobResourceAssembler implements ResourceAssembler<UserJob, Resource<UserJob>>  {

    private EntityLinks entityLinks;

    public UserJobResourceAssembler(EntityLinks entityLinks) {
        this.entityLinks = entityLinks;
    }

    @Override
    public Resource<UserJob> toResource(UserJob entity) {
        Resource<UserJob> resource = new Resource<>(entity);
        resource.add(
                entityLinks.linkFor(UserJob.class, entity.getUser().getUniqueId()).slash(entity.getUserJobId()).withSelfRel()
                );

        return resource;
    }

}

Какое решение получить ожидаемый результат?

...