我在Spring-RS中获得了一些REST端点,它使用实体id作为路径变量。大多数情况下,该方法所做的第一件事是使用id检索实体。有没有办法自动将id映射到实体,只有实体作为方法参数?
现状:
@RequestMapping(path="/{entityId})
public void method(@PathVariable String entityId) {
Entity entity = entityRepository.findOne(entityId);
//Do some work
}
我想拥有什么:
@RequestMapping(path="/{entityId})
public void method(@PathVariable Entity entityId) {
//Do some work
}
答案 0 :(得分:0)
如果您正在使用Spring Data,那是可能的。参见official documentation
答案 1 :(得分:-1)
您可以这样做:
@RequestMapping(value = "/doctor/appointments/{start}/{end}", produces = "application/json")
@ResponseBody
public List<Appointment> showAppointments(Model model, @ModelAttribute("start") Date start,
@ModelAttribute("end") Date end, Principal principal) {
}
获取自定义对象,Spring将尝试将参数转换为给定类型。
出于安全原因,我倾向于大多数时间都传递id。