в моем приложении Spring Data Rest У меня есть стандартный репозиторий:как правильно обрабатывать POST в пользовательском контроллере хранения данных Spring?
@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PersonRepository extends PagingAndSortingRepository<Person, Long> {
List<Person> findByLastName(@Param("name") String name);
}
У меня также есть собственный контроллер, который будет реализовывать дополнительную логику по HTTP POST:
@RestController
@RequestMapping("/people")
public class PersonController {
@RequestMapping(value = "/**", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> savePerson(@RequestBody Person person, UriComponentsBuilder b, @RequestParam Map<String, ?> id) {
UriComponents uriComponents =
b.path("/people/").buildAndExpand();
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setLocation(uriComponents.toUri());
responseHeaders.set("MyResponseHeader", "MyValue");
return new ResponseEntity<String>("Hello World\n\n", responseHeaders, HttpStatus.CREATED);
}
}
Что такое правильный способ сохранить мой объект «Person» в этом контроллере, поскольку я не использую Hibernate Entity Manager явно? Параметр «person» - это просто POJO, поэтому у него нет никаких методов CRUD настойчивости.