One-One ORM并在DB中插入

时间:2013-04-18 14:37:25

标签: spring hibernate spring-mvc

我有一个Employee和Department类的一对一映射。我在域中有Bean类。我有一个前端JSP,它是一个Employee表单。此表单有一个下拉框,其中列出了所有可用的部门。

现在我需要使用hibernate对员工进行插入操作。

<form:form action="add" method="post" modelAttribute="user">
    <div>
        <form:label path="emailAddress">Email</form:label>
        <form:input path="emailAddress" />
    </div>
    <div>
        <form:label path="deptartment">Department</form:label>
        <form:select path="department">
        <form:options items="${departmentList}" />
        </form:select>
    </div>
</form:form>

控制器方法:

@RequestMapping(value = "add", method = RequestMethod.POST)
    public String getAddEmployeeSettingsPage(@ModelAttribute("employee") Employee employee,
            BindingResult result) {

        System.out.println(employee);
        return "empsettings";
    }

现在,员工对象没有引用部门。我该怎么做才能获取控制器中的员工对象以及相关的部门参考。希望我很清楚。提前谢谢。

2 个答案:

答案 0 :(得分:2)

将DAO注入控制器,从部门获取控制器以与DAO中的员工关联,并保留员工。

理想情况下,您可能希望将所有这些逻辑包装到服务方法中,因此该服务只需要一名员工,并将其与相应的部门一起保留。此外,关系不是多对一,许多员工属于一个部门。否则,你有员工鲍勃属于部门鲍勃,员工苏属于部门苏等,

答案 1 :(得分:0)

我找到了无需注射的溶液:

<div>
    <form:label path="department.departmentId">Department</form:label>
    <form:select path="department.departmentId">
    <form:options items="${departmentList}" itemValue="departmentId" itemLabel="departmentName"/>
    </form:select>
</div>

只关联组合框中的部门.. :))