如何使用Hibernate保存我的数据(一对多)?

时间:2013-01-11 06:07:08

标签: hibernate

我正在关注此示例: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();
}

2 个答案:

答案 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);