我正在关注此示例:http://viralpatel.net/blogs/hibernate-one-to-many-xml-mapping-tutorial/
在示例中:它是部门与员工之间的一对多关系(假设雇员只能在一个部门工作)。
在该示例中,每次都会创建一个新部门,然后将新员工附加到该部门。
如果部门已经存在,需要进行哪些更改?或许我再次运行这个例子,并希望在现有部门增加更多员工。
我搜索了网络,但我遇到的所有示例/指南都假定每次都会创建一个新的部门。
我的猜测是我需要设置一个搜索数据库并返回部门数据类型的DAO函数?
谢谢! :)
以下是viralpatel.net
中提到的代码public static void main(String[] args) {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
Department department = new Department();
department.setDepartmentName("Sales");
session.save(department);
Employee emp1 = new Employee("Nina", "Mayers", "1212");
Employee emp2 = new Employee("Tony", "Almeida", "4343");
emp1.setDepartment(department);
emp2.setDepartment(department);
session.save(emp1);
session.save(emp2);
session.getTransaction().commit();
session.close();
}
答案 0 :(得分:1)
您可以使用Session对象的get
方法从数据库中获取对象:
session.get(Department.class, id);
您可以在以下内容中查看完整文档:http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html
答案 1 :(得分:1)
这是我刚才问过的同一个问题, 您可以通过首先从数据库加载/获取部门来将人员添加到现有部门
Department department = session.get(Department.class,new Long(10)); // i assume you are using Long for primary key
Employee emp1 = new Employee("Nina", "Mayers", "1212");
Employee emp2 = new Employee("Tony", "Almeida", "4343");
emp1.setDepartment(department);
emp2.setDepartment(department);