hibernate —— 一对多和多对一

案例:

hibernate —— 一对多和多对一

Employee.java

hibernate —— 一对多和多对一

hibernate —— 一对多和多对一

hibernate —— 一对多和多对一

hibernate —— 一对多和多对一

hibernate —— 一对多和多对一


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();
        }
    }
}