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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值