2011-10-08 66 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; 
} 
相關問題