Доступ к двум сервисным методам с одного контроллера в Hibernate и Spring MVC - PullRequest
0 голосов
/ 08 октября 2011

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

Могу ли я реализовать это в 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 защищен 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;
}

}`

1 Ответ

0 голосов
/ 08 октября 2011

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

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