Spring MVC 3.0:如何绑定到持久对象

San*_*nde 5 data-binding spring persistence spring-mvc spring-3

我正在使用Spring MVC,我希望它能从数据库中绑定一个持久对象,但我无法弄清楚如何设置我的代码以在绑定之前调用DB.例如,我正在尝试将"BenefitType"对象更新到数据库,但是,我希望它从数据库中获取对象,而不是创建新对象,因此我不必更新所有字段.

    @RequestMapping("/save")
public String save(@ModelAttribute("item") BenefitType benefitType, BindingResult result)
{
    ...check for errors
    ...save, etc.
}
Run Code Online (Sandbox Code Playgroud)

San*_*nde 4

因此,我最终通过在类中使用同名的 @ModelAttribute 注释方法来解决这个问题。Spring在执行请求映射之前首先构建模型:

@ModelAttribute("item")
BenefitType getBenefitType(@RequestParam("id") String id) {
    // return benefit type
}
Run Code Online (Sandbox Code Playgroud)