1  单向多对一和单向多对一的区别

比如部门和员工,一个部门下有很多员工,如果只查一个员工属于哪个部门,就用单向的,如果还要查一个部门下的所有员工,就用双向的。

2  双向多对一的配置

除了单向xml和双向xml都配置关联关系之外,java类也要都写一对多和多对一的关联

xml一方:

        <set name="students" table="student" inverse="true">
<key column="gid">
</key>
<one-to-many class="com.ddwei.entity.Student"/>
</set>

xml多方:

        <many-to-one name="grade"  class="com.ddwei.entity.Grade" column="gid"></many-to-one>

java类:

public static void testManyToOne(){
Student stu1 = new Student("小明","男");
Student stu2 = new Student("小红","女");
Grade grad1 = new Grade("java三班","java三班");
stu1.setGrade(grad1);
stu2.setGrade(grad1);
grad1.getStudents().add(stu1);
grad1.getStudents().add(stu2);
Session ses1 = HibernateUtil.getSession();
Transaction tran = ses1.beginTransaction();
ses1.save(stu1);
ses1.save(stu2);
ses1.save(grad1);
tran.commit();
HibernateUtil.closeSession(ses1);
}

Hibernate课程 初探一对多映射3-4 双向多对一的测试的更多相关文章

  1. Hibernate课程 初探一对多映射3-2 单向多对一的配置

    1 多方实体类中加入,一方类和getset方法 //多方定义一个一方的引用 private Grade grade; public Grade getGrade() { return grade; } ...

  2. Hibernate课程 初探一对多映射3-1 单向多对一简介

    多对一的关系和关系数据库中的外键参照关系最匹配,即在己方的表中的一个外键参照另一个表中的主键! 通过在多方持有一方的引用来实现,需要在多的一方使用<many-to-one>来配置

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

    public static void testManyToOne(){ Student stu1 = new Student("小明","男"); Studen ...

  4. hibernate课程 初探一对多映射2-5 创建持久化类并配置映射文件

    学习点: 1 一对多映射,一方 Grade.hbm.xml的写法: <hibernate-mapping> <class name="com.ddwei.entity.Gr ...

  5. Hibernate课程 初探一对多映射5-1 课程总结

    1 单方一对多 xml one-to-many 配置 实体类   一方添加保存多方集合 2 单方多对一 xml many-to-one 配置 实体类   多方添加保存一方引用 3 常用属性 inver ...

  6. Hibernate课程 初探一对多映射4-3 测试--信息查询

    建立双向一对多关系,既可以由一方查询多方信息,同样可以由多方查询一方信息 demo: //查询学生所在班级 public static void showGidByStudent(){ Session ...

  7. Hibernate课程 初探一对多映射4-2 cascade级联属性

    1 级联属性:hibernate一方和多方设置关联关系,当一方发生相应修改时(见下表),多方不用进行显式修改,也能进行相应修改.   级联在一方和多方xml中都可以设置 属性值 含义和作用 all 对 ...

  8. Hibernate课程 初探一对多映射2-7 测试-修改和删除学生信息

    package com.ddwei.entity; import java.util.Set; import org.hibernate.Session; import org.hibernate.T ...

  9. hibernate课程 初探一对多映射2-6 测试-添加和查询学生信息

    package com.ddwei.entity; import java.util.Set; import org.hibernate.Session; import org.hibernate.T ...

随机推荐

  1. django 基础框架学习 (二)

    Django框架基础-02 Django缓存cookie 1.说明        当我们服务器在响应数据的同时,希望写⼊⼀些缓存数据到客户端        我们可以选择在响应的同时,将要写⼊到客户端的 ...

  2. Python循环加强版——列表生成式

    记得我们在其他语言中都学到过循环,尤其是对for循环是再熟悉不过了 比如我有一个数组  a[10]={1,2,3,4,5,6,7,8,9,10} 下面需要依次循环打印出来,C语言首先想到的是 for( ...

  3. atcoder 2579

    You are taking a computer-based examination. The examination consists of N questions, and the score ...

  4. Gym - 101845F 最大流

    The UN finals are here!, the coaches/ex-coaches team is creating a new exciting contest to select wh ...

  5. php字符串中去除html标签

    strip_tags() 函数剥去字符串中的 HTML.XML 以及 PHP 的标签.

  6. 8.10zju集训日记

    今天的题目比昨天的简单,一开始自己看了一道题意比较难懂的题目,然后看到榜上有人做出的两道不同的题目,然后马上改变目标,金大佬看的题目是一道比较裸的高斯消元,基本上只要模板正确就可以对,于是很快就开始打 ...

  7. lnmp 架构

    Mysql安装 tar zxf mysql-boost-5.7.17.tar.gz yum install -y gcc gcc-c++ yum install cmake-2.8.12.2-4.el ...

  8. Linux数组基础

    执行结果:

  9. java——异常类、异常捕获、finally、异常抛出、自定义异常

    编译错误:由于编写程序不符合程序的语法规定而导致的语法问题. 运行错误:能够顺利的编译通过,但是在程序运行过程中产生的错误. java异常类都是由Throwable类派生而来的,派生出来的两个分支分别 ...

  10. docker 设置固定ip、配置网络

    Docker安装后,默认会创建下面三种网络类型 $ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge ...