У меня есть этот сервисный метод, который отвечает за выборку заданий из БД и возврат их в формат 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;
}
}
Какое решение получить ожидаемый результат?