Hibernate课程 初探多对多映射2-4 测试

package com.ddwei.test;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.ddwei.entity.Employee2;
import com.ddwei.entity.Project;
import com.ddwei.util.HibernateUtil;

/**
 *
 * @author weijingli
 *
 */
public class Test {

    /**
     * 关联关系交由Project来管理,需要在Employee2.hbm.xml中设置反转;
     * 为了删除项目时,级联删除员工,所以需要在Project.hbm.xml中设置级联 记得cfg.xml 配置hbm.xml
     * @param args
     */
    public static void main(String[] args) {
        Employee2 emp1 = new Employee2(1,"苏妲己");
        Employee2 emp2 = new Employee2(2,"白素贞");
        Project pro1 = new Project(1, "苏州银行");
        Project pro2 = new Project(2, "杭州银行");
        pro1.getEmployees().add(emp1);
        pro2.getEmployees().add(emp1);
        pro2.getEmployees().add(emp2);

        Session session1 = HibernateUtil.getSession();
        Transaction trans1 = session1.beginTransaction();
        session1.save(pro1);
        session1.save(pro2);
        trans1.commit();
        HibernateUtil.closeSession(session1);

    }

}

原文地址:https://www.cnblogs.com/1446358788-qq/p/9391614.html

时间: 2024-09-30 03:31:14

Hibernate课程 初探多对多映射2-4 测试的相关文章

hibernate课程 初探单表映射2-6 session详解(下)

本节主要内容: 1 介绍了getCurrentSession和opensession的区别 2 demo:通过打印比较两个session是否相同,验证两个session是否是同一session 3 demo:通过打印hashcode验证不关闭session,容易连接池溢出. 1 getCurrentSession和opensession的区别 a getCurrentSession每次获取的都是同一连接,opensession每次获取的是不同的连接. b getCurrentSession不需要

hibernate课程 初探单表映射3-3 对象类型

本节简介: 1 简介对象类型(重点是音视频blob类型) 2 demo(对图片的写入数据库与读取) 1 简介对象类型 映射类型 java类型 标准sql类型 mysql类型 oracle类型 binary byte[] varchar blob blob text(大文本类型) java.lang.String clob text   clob clob(大文本类型)    java.sql.Clob clob text clob blob(二进制数据类型)  java.sql.Blob blo

hibernate课程 初探单表映射3-5 hibernate增删改查

本节简介: 1 增删改查写法 2 查询load和查询get方法的区别 3 demo 1 增删改查写法 增加 session.save() 修改 session.update() 删除 session.delete() 查询 session.get()/session.load() 2 查询load和查询get方法的区别 a get 不考虑缓存情况下,get会在调用之后立即向数据库发送sql语句,返回持久化对象.load 是调用后返回代理对象,该代理对象只保存实体对象id,只有使用对象非主键属性才

【Hibernate步步为营】--多对多映射详解

上篇文章详细讨论了一对多映射,在一对多映射中单向的关联映射会有很多问题,所以不建议使用如果非要采用一对多的映射的话可以考虑使用双向关联来优化之间的关系,一对多的映射其实质上是在一的一端使用<many-to-one>标签来标明它们之间的关系,另外还需要在一的一端的对象中使用set标明集合映射. 一.单向多对多 仍然按照前几篇的文章格式来讨论,首先来看对象之间的关系,单向的多对多关系是两个对象之间发生的,比如在人和职位之间,一个人可以有多个职位,而且一个职位也可以由多人来负责,所以它们之间就形成了

hibernate(四) 双向多对多映射关系

序言 莫名长了几颗痘,真TM疼,可能是现在运动太少了,天天对着电脑,决定了,今天下午花两小时去跑步了, 现在继上一章节的一对多的映射关系讲解后,今天来讲讲多对多的映射关系把,明白了一对多,多对多个人感觉还是比较容易的,需要理清楚其数据库关系图,那么你就拿下了它.映射文件的配置还是那么些死东西. --WH 一.小疑问的解答 问题一:到这里,有很多学习者会感到困惑,因为他不知道使用hibernate是不是需要自己去创建表,还是hibernate全自动,如果需要自己创建表,那么主外键这种设置也是自己设

【Hibernate步步为营】--多对多映射具体解释

上篇文章具体讨论了一对多映射,在一对多映射中单向的关联映射会有非常多问题,所以不建议使用假设非要採用一对多的映射的话能够考虑使用双向关联来优化之间的关系,一对多的映射事实上质上是在一的一端使用<many-to-one>标签来标明它们之间的关系,另外还须要在一的一端的对象中使用set标明集合映射. 一.单向多对多 仍然依照前几篇的文章格式来讨论.首先来看对象之间的关系,单向的多对多关系是两个对象之间发生的,比方在人和职位之间,一个人能够有多个职位,并且一个职位也能够由多人来负责,所以它们之间就形

Hibernate课程 初探一对多映射3-3 单向多对一的测试

public static void testManyToOne(){ Student stu1 = new Student("小明","男"); Student stu2 = new Student("小红","女"); Grade grad1 = new Grade("java三班","java三班"); stu1.setGrade(grad1); stu2.setGrade(gra

Hibernate中的多对多映射

1.需求 项目与开发员工 一个项目,有多个开发人员 一个开发人员,参与多个项目 [多对多] 2.实体bean设计 Project: public class Project { private int prj_id; private String prj_name; private Set<Developer> devs = new HashSet<Developer>(); set... get... } Developer: public class Developer { p

--------------Hibernate学习(四) 多对一映射 和 一对多映射

现实中有很多场景需要用到多对一或者一对多,比如上面这两个类图所展现出来的,一般情况下,一个部门会有多名员工,一名员工只在一个部门任职. 多对一关联映射 在上面的场景中,对于Employee来说,它跟Department的关系就是多对一. 先写实体类 Employee.java package entity; public class Employee { public int id; public String name; public Department department; public