0

我坚持从一个控制器访问 2 种服务方法。我想创建一个任务,但同时我想创建新角色并将其自动增量 ID 分配给任务的角色 ID(外键)。它是一对一的映射。

我可以在 simpleFormContrller 中实现它吗?我该怎么做?

public class CreateTaskController extends SimpleFormController {

 HResourceService hrService;         // Create a Service class instance.

 public void setHResourceService(HResourceService hrservice) {
    this.hrService = hrservice;
}

public CreateTaskController() {

    setCommandClass(Task.class);
        `

` @Override protected ModelAndView onSubmit(Object command) throws Exception {

    Task task = (Task) command;

    //ContactService.createContact(contact);

    hrService.createTask(task);

    ModelAndView mv = new ModelAndView();

    mv.setViewName(getSuccessView());

    mv.addObject("taskCreated", task.getDescription());    // Pass response to taskCreated view
    return mv;
}

}`

4

1 回答 1

0

如果休眠 bean 之间的关系定义正确,应该没有问题。

public class Role implements Serializable {

   @OneToOne(cascade=CascadeType.ALL,mappedBy="task")    
   private Task task;

}

public class Task implements Serializable {
....
   @OneToOne
   @JoinColumn(cascade=CascadeType.ALL,"role_id")
   private Role role;
....
}

@Override protected ModelAndView onSubmit(Object command) throws Exception {

    Task task = (Task) command;
    task.setRole(new Role("big_brother").setTask(task));

    hrService.createTask(task);

    ModelAndView mv = new ModelAndView();

    mv.setViewName(getSuccessView());

    mv.addObject("taskCreated", task.getDescription());    // Pass response to taskCreated view
    return mv;
}
于 2011-10-08T07:24:23.687 回答