我有部门实体,其中包含员工名单。假设departmentA有employee1到employee10的员工列表。
<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, :firstname %>
问题
仅供参考,我正在为所有协会使用级联
答案 0 :(得分:0)
1-步骤2中员工名单下的员工1对象是否相同 如emp_step_3?
是。如果步骤1将该部门的所有员工拉入托管会话,那么该部门的员工实体将是托管实体,因此当您通过ID获得其中一个员工时,Hibernate将返回相同的实体。 (假设级联全部)
2-应该在第3步触发查询员工ID 1,因为它已经存在 在第2步获得了什么?
实际上,您已经拥有代表所需员工的实体。
3-是否应为员工1更新地址2或3?
地址是管理实体吗?你有没有全部级联?如果您保存地址已更改的员工,它也将保存关联的实体。 (再次,如果级联全部,或级联持久化打开)或者你可以保存地址,如果它是一个被管实体。
此外,您可以执行session.saveOrUpdate(employee),如果没有任何更改,则不必保存“dept”。
这假设所有这些都发生在同一个会话中。
希望这有帮助。