hibernate —— 一对多和多对一
案例:
Employee.java
package com.huarui.test;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.Test;
import com.huarui.entity.Department;
import com.huarui.entity.Employee;
import com.huarui.utils.SessionFactoryUtil;
public class TestEmployee {
@Test
public void delete() {
// 创建session
Session session = SessionFactoryUtil.getSessionFactory().openSession();
Department department = (Department) session.get(Department.class, 1);
// 开启事务
session.beginTransaction();
// 保存对象
try {
session.delete(department);
// 提交事务
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
// 关闭session
session.close();
}
}
@Test
public void save1() {
// 创建session
Session session = SessionFactoryUtil.getSessionFactory().openSession();
// 创建对象
Department department = new Department();
department.setDepName("财务部");
Employee employee = new Employee();
employee.setEmpName("王子豪");
Employee employee1 = new Employee();
employee1.setEmpName("冯小刚");
Employee employee2 = new Employee();
employee2.setEmpName("杨紫琼");
// 建立联系
employee.setDepartment(department);
employee1.setDepartment(department);
employee2.setDepartment(department);
// 开启事务
session.beginTransaction();
// 保存对象
try {
// 执行保存
session.save(department);
session.save(employee);
session.save(employee1);
session.save(employee2);
// 提交事务
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
// 关闭session
session.close();
}
}
@Test
public void get1() {
// 创建session
Session session = SessionFactoryUtil.getSessionFactory().openSession();
Department department = (Department) session.get(Department.class, 1);
System.out.println(department.getDepName());
Set<Employee> employees = department.getEmployee();
for (Employee employee : employees) {
System.out.println(employee.getEmpName());
}
}
@Test
public void save2() {
// 创建session
Session session = SessionFactoryUtil.getSessionFactory().openSession();
// 创建部门
Department department = new Department();
department.setDepName("企划部");
// 增加员工信息
Employee employee = new Employee();
employee.setEmpName("王羲之");
Employee employee1 = new Employee();
employee1.setEmpName("叶良车");
Employee employee2 = new Employee();
employee2.setEmpName("王大爷");
// 建立联系
department.getEmployee().add(employee);
department.getEmployee().add(employee2);
department.getEmployee().add(employee1);
// 开启事务
session.beginTransaction();
// 保存对象
try {
// 执行保存
session.save(department);
// session.save(employee);
// session.save(employee1);
// session.save(employee2);
// 提交事务
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
// 关闭session
session.close();
}
}
}