2011-10-08 68 views
0

我被一个控制器访问2个服务方法困住了。我想创建一个任务,但同时我想创建新角色并将其自动增量ID分配给任务的roleId(外键)。这是一对一映射。从hibernate和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); 
     ` 

`@覆盖 保护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; 
} 

}`

回答

0

应该有,如果你有正确的关系定义没有问题在冬眠豆之间。

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; 
} 
相关问题