0

我正在关注这个例子: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();
}
4

2 回答 2

1

您可以使用getSession 对象的方法从数据库中获取对象:

session.get(Department.class, id);

您可以在以下 ling 中查看完整文档:http: //docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html

于 2013-01-11T06:12:41.790 回答
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);
于 2013-01-11T09:54:59.203 回答