现在联系使用hibernate,经常遇到的问题是,不如一个emp表的Employee对象,其中有一个属性Department对象关联到dept表,我想更换Employee对象的部门。 
    我通常的做法是   Java code Employee emp = getEmpDAO().findById(id);//获取该员工 //dId 为要更改的部门编号 Department dept = getDeptDAO().findById(id);//获取要更改的部门 emp.setDepartment(dept); // 更新职员的部门 getEmpDAO().save(emp);保存更新   我emp表中只有一个deptno属性,我干嘛还得再把把对应部门查出来,这部多余吗? 难道不可以直接修改吗? 
  求更高明的做法。 
  非常感谢。

解决方案 »

  1.   

    用sql直接改好了
    emp.department
      

  2.   

    既然Employee对象中有一个deptno属性,也就意味着由Employee来维护员工与部门的关系,这好办啊,你在更换员工的部门时,只需这样就行了:
    emp中想把deptno由1修改成2,只需这样就行了.
    emp.setDepartment(new Department(2));hibernate会自动关联好,当然前提是Department对应的表中要有id为2的字段。不蛮你说,我原来也是和你一样操作的,还认为我上面写的是错误的,不过没有问题!