Hibernate-03 关联映射】的更多相关文章

上一篇,记录了Hibernate注解----类级别注解以及属性注解详解 ,我们这一节主要讲解的是Hibernate注解----关联映射注解以及课程总结详解. 本节的主要内容: 第3章 关联映射注解 3-1 本章简介 3-2 实体之间的关系 3-3 一对一单向外键关联(一) 3-4 一对一单向外键关联(二) 3-5 一对一双向外键关联 3-6 一对一单向外键联合主键 3-7 多对一单向外键关联(一) 3-8 多对一单向外键关联(二) 3-9 一对多单向外键关联 3-9 一对多双向外键关联 3-10…
Hibernate的关联映射--双向1-N关联 对于1-N的关联,Hibernate推荐使用双向关联,而且不要让1的一端控制关联关系,而是用N的一端控制关联关系.双线的1-N关联和N-1关联是两种相同的情形,两端都需要增加对关联属性的访问,N的一端增加引用到关联实体的属性,1的一端增加集合属性,集合的元素为关联实体. Hibernate对双向的1-N关联同样提供了有连接表和无连接表的两种关联映射策略. 1.无连接表的双向1-N关联 无连接表的双向1-N关联,N的一端需要增加@ManyToOne注…
Hibernate的关联映射--单向1-N关联 单向1-N关联的持久化类里需要使用集合属性.因为1的一端需要访问N的一端,而N的一端将以集合(Set)形式表现.从这个意义上来看,1-N(实际上还包括N-N)和集合属性非常相似,只是此时集合里的元素是关联实体. 对于单向的1-N关联关系,只需要在1的一端增加Set类型的成员变量,该成员变量记录当前实体所有的关联实体,当然还要为这个Set类型的属性增加setter和getter方法. 为了映射1-N关联,需要使用@OneToMany注解. 1.无连接…
Hibernate的关联映射--单向1-1关联 对于单向的1-1关联关系,需要在持久化类里增加代表关联实体的成员变量,并为该成员变量添加setter方法和getter方法.从持久化类的代码上看,单向1-1与单向N-1没有丝毫区别.因为N的一端或者1的一端都是直接访问关联实体,只需要增加代表关联实体的属性即可. 对于1-1关联(不管是单向关联,还是双向关联),都需要使用@OneToOne修饰代表关联实体的属性. 1.基于外键的单向1-1关联 对于基于外键的1-1关联而言,只要先试用@OneToOn…
Hibernate的关联映射--单向N-1关联 N-1是非常常见的关联关系,最常见的父子关系也是N-1关联,单向的N-1关联只需从N的一端可以访问1的一端. 为了让两个持久化类能够支持这种关联映射,程序应该在N的一端的持久化类中增加一个属性,该属性引用1的一端的关联实体. 对于N-1关联(不论是单向关联还是双向关联),都需要在N的一端使用@ManyToOne修饰代表关联实体的属性. 1.无连接表的N-1关联 对于无连接表的N-1关联而言,程序只要在N的一端增加一列外键,让外键值记录该对象所属的实…
~~~接着之前的Hibernate框架接着学习(上篇面试过后发现真的需要学习以下框架了,不然又被忽悠让去培训.)~~~ 1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 [一对多映射] 多个学生可以被一个老师教[多对一映射] 部门与员工: 一个部门有多个员工[一对多映射] 多个员工属于一个部门[多对一映射] 1.2:多对多,举例说明: 项目和开发员工:[双向一对多即多对多映射] 一个项目有多个开发…
上篇我们介绍了关联映射的几种形式,有单向多对一,单向一对多,还有双向一对多.本篇接着介绍有关关联映射的其他几种映射方式,主要有以下几种: 基于外键的单向一对一关联映射 基于主键的单向一对一关联映射 单向多对多关联映射 一.基于外键的单向一对一关联映射      具有一对一关联的表结构也是很常见的,比如:一个人对应于一张身份证.于是我们的person表会有一个外键关联到 idcard表的主键,只要这个外键列唯一即可保证person到idcard表的关系由多对一变为一对一,也就是说单向的一对一关联映…
一:多对一 <many-to-one 1.name:当前类的属性名(关联映射的类) 2.column:属性多对应的类的对应的表的外键(连接条件) 3.class:属性所对应的类的权限定名 4.not-null:不能为空(当持久化当前类对象时,此属性所对应的对象也就是关联映射的对象字段不能为空) 注意:此值为true时,有可能报PropertyValueException:当持久化当前类,当前类被存入数据库,而关联字段对象没有存入数据库,但关联字段又不能为空,则导致异常  当从数据库查询出当前类,…
何为关联映射 由于数据库的表与表之间存在的管理关系,可以分为一对一,一对多和多对多关联,一般情况下,在数据库设计中是通过表的外键来建立各种关系的,在Hibernate中则把数据库表与表之间的关系数据映射成面向对象型的数据关系,即映射文件中建立表之间的关联,对表的操作就转换成了对类的对象的操作. 这里介绍下一对多关联 一对多关联是数据库中用的最多的,例如班级和学生之间的关系,教师与学生之间的关系,部门与职工的关系等.而Hibernate就是通过这种有关联的表,在对一方进行查找时,可以通过查找多方或…
回顾Hibernate: 1. hibernate开发环境搭建 ----> 引入jar: hibernate.jar + required + jpa + 驱动包 ---> hibernate.cfg.xml ---> javabean/*.hbm.xml ---> Application  测试 2.hibernate api ----> Configuration ----> SessionFactory ----> Session ---> Trans…
上篇文章我们对持久化对象进行的学习,了解了它的三种不同的状态并通过它完成对数据库的映射操作.但这都是基于单张表的操作,如果两张或者两张以上的表之间存在某种关联,我们又该如何利用持久化对象进行操作呢?本篇主要介绍的关联映射就是针对有着某种关联的多张表的各种操作,主要涉及内容如下: 组合主键的映射 组件的映射 单向多对一的映射 单向一对多的映射 双向一对多的映射 级联映射 一.组合主键的映射操作      根据我们的上篇文章,对于单一主键,在对象映射配置文件中使用 id标签即可完成配置.但是,往往有…
啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是一对一(一个用户只能有一份档案 一份档案只能属于一个永固) 我们无需建表,Hibernate会检查数据库中有没有对应的表,如果没有,自动生成 我们也可以用来看自动生成的表是什么样子的 一对一外键映射FK 那么接下来是小配置文件 user的小配置文件 <one-to-one name="resu…
在最近java,SSH框架的学习中遇到了这样的一个问题,在Hibernate的开发中一对一关联映射的单向关联,主表会在次表新增一列次表的主键如下图,但是在双向关联中次表不会在表中创建主表的主键一列,这是为什么呢  ,原来是因为mappedBy参数的原因,在不给这个参数时次表会创建主表主键的一列,sql语句也会增多,而设置了这个参数时,次表不会创建主表主键的一列,sql语句也会少,在以后的项目中一定要设置这个参数,可能练习的项目数据量很小看不出差距,但是数据量一大mappedBy参数的作用就体现出…
这是我 1 单向一对多: 实体类:(课程类)Grade与(学生类)Student的一对多关系 学生类: public class Student implements java.io.Serializable { // Fields private Long id; private String name; private Integer age; private Long gradeId; //省略set.get方法 } bhm.xml: <hibernate-mapping> <cl…
单向N-1关联 <many-to-one> 单向N-1关系,比如多个人对应同一个住址,只需要从人实体端找到对应的住址实体,无须关系某个地址的全部住户.程序在N的一端增加一个属性,该属性引用1的一端的关联实体. 例如下面person实体中的address属性, package map.six11; public class Person { public Integer getId() { return id; } public void setId(Integer id) { this.id…
一.一对一关联 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1)保存员工档案的同时分配给员工一个账号. (2)加载员工档案的同时加载账号信息. 按照外键映射: 关系图: ①创建实体类:Resume.Users 并封装属性 public class Resume { //档案id private Integer resid; //档案名称 private Str…
No.1 映射一对多双向关联关系: 当类与类之间建立了关联,就可以方便的从一个对象导航到另一个或另一组与它关联的对象. 步骤一: 注意:hibernate要求在持久化类中定义集合类属性时,必须把属性类型设置为接口类型(如:java.util.Set) 优点:声明接口类型可以提高持久化类型的透明性,当hibernate调用setEmp()时,传递的参数是hibernate自定义的该接口的类的实例, 如果把setEmp()设置成java.util.HashSet,就强迫hibernate只能把Has…
1.在之前学习了单表的crud操作.在实际应用中,大都是多表关联操作,这篇会学习如何处理多表之间的关系. 2.考察书籍表和书籍分类表的关系.书籍表和书籍分类表之间是多对一的关系.数据库的表设计为: 3.在java中,如何使用类的关系来表明表与表之间关系 Book.java public class Book implements Serializable{ private int id; private String name; private String author; private do…
package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity public class Husband extends BaseEntity { @OneToOne(mappedBy = "husband") private Wife wife; public Wife getWife() { return wife; } public void setWi…
1.多对一 product----category category.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibern…
一.整理思路: 之前,小编总结过Mybatis的关联映射,接下来,再来总结一下hibernate的相关的关联映射,直接上图: 这张图,就是小编整理总结整个Hibernate的关联映射的一个大致思路. 二.名词解释" 1.单向关联:很简单,就是一个对象依赖于另一个对象. 2.双向关联:两个对象互相依赖. 三.一对一(one-to-one)关联映射: 所谓的一对一,大白话理解就是一个物件拥有的某种附属物件能而且只能拥有一件.举个例子就是作为学生,一个学生只能拥有一个有效的学生证,一个堂堂正正的中国公…
介绍基于基本映射的关联关系映射. 概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述七种,但是由于相互之间有各种关系,可以简化,例如:多对一与一对多映射,只是侧重的角度不对而已. 映射技巧 映射技巧是小编写映射文件的过程,总结的经典内容,总共分为四步,咋看不是特别易懂,但是效果很好.下面我们以实例看技巧. (1)写注释 格式为:?属性,表达的是本对象与?的?关系. 解释:在写映射文…
[SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,採用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例.对它的基本原理有了一个理性的认识. [SSH进阶之路]Hibernate基本映射(三),我们介绍了Hibernate的基本映射(即对一个实体进行映射)的相关概念,并给大家实现相关实例.比較简单. 这篇博客.我们開始介绍基于基本映…
在hibernate中非常重要的就是映射,在前面的博文中,小编简单的介绍了基本映射,基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用.这个比较简单,但是基础知识还是需要好好掌握的哦,还有一些关联映射,比如user && group,她们之间的关系是一对多,我们知道一个用户只能属于一个组,但是一个组可以包好N多个用户,所以他们之间的关系就是多对一的关系,接着我们来看他们的对象模型以及关系模式. 所谓多对一单…
转自:https://blog.csdn.net/fengxuezhiye/article/details/7369786?utm_source=blogxgwz9 Hibernate的关联映射关系有: 多对一 ---- many-to-one 一对多 ---- one-to-many 一对一 ---- one-to-one 多对多 ---- many-to-many 比较常用的是多对一和一对一关联映射 多对一关联映射: 场景:用户和组:从用户角度来看,多个用户属于一个组(多对一关联) 使用hi…
@经常使用属性说明:     @Entity:实体类     @Table:指定相应数据表     @Id:主键,使用能够为null值的类型,假设实体类没有保存到数据库是一个暂时状态     @Column:配置普通属性,除了主键外,java基本类型的属性     @Base:普通属性的载入方式     @GeneratedValue:主键生成策略     @Temporal:日期类型(DATE,TIME还是TIMESTAMP),假设属性类型是java.util.Date(是以上3个类的父类)类…
~~~接着之前的Hibernate框架接着学习(上篇面试过后发现真的需要学习一下框架了,不然又被忽悠让去培训.)~~~ 1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 [一对多映射] 多个学生可以被一个老师教[多对一映射] 部门与员工: 一个部门有多个员工[一对多映射] 多个员工属于一个部门[多对一映射] 1.2:多对多,举例说明: 项目和开发员工:[双向一对多即多对多映射] 一个项目有多个开发…
关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 一:配置单向多对一关联 在Emp类中定义一个Dept属性,而在Dept类中无须定义用于存放Emp对象的集合属性 01.Dept.java package cn.zhang.entity; //部门实体类 public class Dept { private Integer deptid;//编号 private String deptname;//名称 public Integer getDeptid() { return…
在我们实际项目中,多对多的情况也时长存在,比如最常见的就是系统管理的五张表,如下面的一个结构: 在本文学习hibernate多对多关联映射的实验中我简单的写几个字段,达到学习目的即可. 1.多对多的关系表达 1.关系型数据库(RDB)中的表达: 2.Java实体中的表达 3.orm配置文件中的表达:(注意每次添加了ORM映射文件都要加到主配置文件中) User.hbm.xml <?xml version="1.0" encoding="UTF-8"?>…
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hibernate一对一外键单向关联Hibernate一对一外键双向关联Hibernate多对一单向关联Hibernate多对一双向关联 Hibernate多对多关联 代码都写有注释,主要包括(核心配置文件,实体映射文件,实体类,测试类,数据库)主要操作有增删改查. 本篇主要介绍Hibernate多对多关联: h…