У меня есть требование, в котором мне нужно сопоставить тело запроса с определенным дочерним классом на основе переменной пути.Тело запроса само по себе не содержит никакой информации о том, какой дочерний класс выбрать.
@ApiOperation(value = "Update Developer (dev)",
response = ResponseEntity.class)
@RequestMapping(method = RequestMethod.PATCH,
value = "/{type}")
public ResponseEntity<Response> updateDeveloper(
@PathVariable String type,
@RequestParam("year") String year,
@RequestBody Developer employeeUpdate,
) { .....}
@ApiOperation(value = "Update Manager (manager)",
response = ResponseEntity.class)
@RequestMapping(method = RequestMethod.PATCH,
value = "/{type}")
public ResponseEntity<Response> updateManager(
@PathVariable String type,
@RequestParam("year") String year,
@RequestBody Manager employeeUpdate,
) { .....}
Где Developer и Manager расширяют абстрактный класс Employee.
Я пытался использовать только один метод, подобныйниже:
@ApiOperation(value = "Update Employee (manager, dev)",
response = ResponseEntity.class)
@RequestMapping(method = RequestMethod.PATCH,
value = "/{type}")
public ResponseEntity<Response> updateEmployee(
@PathVariable String type,
@RequestParam("year") String year,
@RequestBody Employee employeeUpdate,
) { .....}
Но Spring не может создать экземпляр экземпляра Employee в качестве абстрактного.
Мой дизайн неверен?Я предпочитаю иметь решение, которое не требует изменения классов Employee / Developer / Manager.
Заранее спасибо !!