Я реализую Spring Data REST в одном из моих проектов. Я должен написать несколько пользовательских репозитариев, чтобы писать собственные запросы. Я использую контроллер перед моим REST-хранилищем. Чтобы получить ответ HATEOAS, я использую PersistentEntityResourceAssembler в своем контроллере. Этот контроллер работает нормально для одной сущности, но в случае списка я получаю исключение «PersistentEntity не должно быть нулевым!»
@RequestMapping(value="/employmentType", method=RequestMethod.GET, produces="application/hal+json")
@ResponseBody
public ResponseEntity<?> getEmploymentTypes(HttpServletRequest request, HttpServletResponse response,PersistentEntityResourceAssembler resourceAssembler) throws TenantUnavailableException, TenantInvalidException
{
try
{
List<EmploymentType> employmentTypeList = employmentTypeRepository.findAll();
if(null==employmentTypeList || employmentTypeList.size()==0)
return new ResponseEntity<ApiResponse>(new ApiResponse(false, ENTITY_NOT_FOUND),
HttpStatus.NOT_FOUND);
// Accessing the 0th index works fine
//In case of a full list, it throws "Persistant Entity must not be null !" exception
return ResponseEntity.ok(resourceAssembler.toResource(employmentTypeList.get(0)));
}
catch (Exception e)
{
e.printStackTrace();
return new ResponseEntity<ApiResponse>(new AppResponse(false, REQUEST_NOT_PROCESSED),
HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Я пытаюсь использовать максимальную функциональность пружины с минимальной поддержкой кодирования с моей стороны. Я не хочу писать ResourceAssembler для каждой постоянной сущности в моем проекте.
Пожалуйста, предложите, если у кого-нибудь есть идеи.