【发布时间】:2017-02-24 06:40:13
【问题描述】:
在我的 Spring Data Rest 应用程序中,我有一个标准存储库:
@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);
}
}
由于我没有明确使用 Hibernate Entity Manager,因此在此控制器中保存“Person”实体的正确方法是什么? “person”参数只是一个 POJO,所以它没有任何持久化 CRUD 方法。
【问题讨论】:
标签: java spring spring-data-rest