Доступ к двум методам службы с одного контроллера в спящем режиме и Spring MVC

Я застрял с доступом к двум методам обслуживания с одного контроллера. Я хочу создать задачу, но в то же время я хочу создать новую роль и назначить ее идентификатор автоинкремента для идентификатора роли задачи (внешний ключ). Это сопоставление один к одному.

Могу ли я реализовать это в 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 (команда объекта) выдает исключение {

    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;
}

}`


person devan    schedule 08.10.2011    source источник


Ответы (1)


Не должно быть проблем, если у вас есть правильное определение отношения между спящими компонентами.

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;
}
person forker    schedule 08.10.2011