Hibernate一对多与多对一关系映射
运用部门与员工之间的关系
部门(Department)中有三属性,设置get和set方法
简单的添加操作public static void add(){Session session = HibernateUtil.getSession();Transaction ts = HibernateUtil.getTs();Department depart = new Department();depart.setDname("depart1");Employee emp1 = new Employee();//emp和depart建立关系,如果不设置对应的外键值为空emp1.setEname("emp1");emp1.setDepart(depart);Employee emp2 = new Employee();emp2.setEname("emp2");emp2.setDepart(depart);//如果同时在一端也进行关系维护的话,会生成两天update语句,如果想取消一端的维护的话可以配置inverse属性Set<Employee> eset = new HashSet<Employee>();eset.add(emp1);eset.add(emp2);depart.setEmps(eset);/* * 必须对部门实体进行保存,因为员工表对部门表进行了引用, * 保存时间可以早于emp,也可晚于emp,但是要在commit之前 * 两种情况会生成不同的sql语句,当保存emp早于depart时,会生成3条insert语句和2条update语句, * 两条update语句是更新emp表的外键,因为在保存emp时depart的id为空,当再保存depart时,因为 * emp为持久化对象,所以其对应的引用值也会改变 * * 当保存depart在emp之前是只生成3条insert语句 */session.save(depart);session.save(emp1);session.save(emp2);ts.commit();session.close();}