hibernate特殊的映射】的更多相关文章

hibernate中关系映射指的是实体类与实体类间的关系.和数据库中表与表之间的关系类似,有一对一,多对一,一对多,多对多四种映射关系. 一:一对一映射 两个对象之间是一对一的关系,如人和身份证之间是一对一的关系. 实现一对一映射有两种方式,一种是主键约束,一种是外键约束 1,主键约束 数据库表不会有额外的字段维护他们之间的关系,仅通过表的主键来关联 1)对象模型 2)关系模型 2,外键约束 在一种一个对象中加入另一个对象的属性 1)对象模型 2)关系模型 3)xml中配置 由于IDCard 身…
上一篇,记录了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的一端增加一列外键,让外键值记录该对象所属的实…
1.在entity(实体类)模块中使用注解 1_1.注解的位置出现在 [类定义的前面] 和 [属性的get方法前面] [属性的get方法前面] Java代码: package app.entity; //模型 import javax.persistence.*; @Entity //告诉JPA接口的实现者,当前这个类是实体类.模型类 @Table(name="t_demo") //声明这个模型对于其哪张数据表 public class Demo { private Integer c…
[Hibernate]Hibernate的集合映射与sort.order-by属性 常用集合Set.List.Map,相信大家都很熟悉,面试中也会经常问.Set和List都继承了Collection接口,Set是无序不可重复的,不可以存储相同的元素:而Lsit是顺序存储的,可存储重复元素.Map不是继承Collection的,Map提供key到value的映射,Map也是不可重复的(key不可重复),一个Map中不能包含相同的key,每个key只能映射一个value. 持久化类的属性是集合时,要…
hibernate基本值类型映射中日期类型支持date,time,timestamp这三个选项,其中 date:对应数据库中的date类型,表示只显示日期 time:对应数据库中的time类型,表示只显示时间 timestamp:对应数据库中的timestamp类型,如果数据库支持datetime类型则对应的是datetime类型,表示日期时间都显示(此处为经过本人测试后的猜测). 以下摘自:开源中国 MySQL 中用来存储完整时间的字段包括有 TIMESTAMP 和 DATETIME 两个.很…
象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载! <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XM…
原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDEA 编辑器生成 Hibernate 实体映射文件,很多人认为 IDEA 不支持此功能,或者需要安装特定的插件才能完成该操作.实际上 IDEA 支持该功能也无需安装IntelliJ IDEA插件. 以下为 IntelliJ IDEA 编辑器生成 Hibernate 实体映射文件过程和截图. 这里数据库…
@经常使用属性说明:     @Entity:实体类     @Table:指定相应数据表     @Id:主键,使用能够为null值的类型,假设实体类没有保存到数据库是一个暂时状态     @Column:配置普通属性,除了主键外,java基本类型的属性     @Base:普通属性的载入方式     @GeneratedValue:主键生成策略     @Temporal:日期类型(DATE,TIME还是TIMESTAMP),假设属性类型是java.util.Date(是以上3个类的父类)类…
POJOs如下: Customer类------>customer表   Order类对应---------->orders表  customer(1)<--------------->(n)order public class Customer { private String id; private String username; private String password; private Timestamp registerTime; private int age;…
对象标识符号 在关系数据库表中,主键(Primary Key)用来识别记录,并保证每条记录的唯一性.在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个变量引用的对象值是否相同来判断两对象是否相等.Hibernate为了解决两者之间的不同,使用对象标识符(OID)来标识对象的唯一性.OID是关系数据库中主键在Java对象模型中的等价物.在运行时,Hibernate根据OID来维持Java对象和数据库表中记录的对应关系.如下代码所示,三次调用了Session的load()方…
Hibernate:如何映射聚合? 目录 背景映射聚合聚合模型映射配置测试备注 背景返回目录 DDD 是在 Hibernate 之后发现的概念,Hibernate 如何映射 DDD 中的聚合呢?本文给出一种思路. 参考资料:DDD:使用EntityFramework的话,如果只为聚合根设计仓储,其它实体如何处理?. 映射聚合返回目录 聚合模型返回目录 Order 1 package model; 2 3 import java.util.*; 4 5 public class Order { 6…
~~~接着之前的Hibernate框架接着学习(上篇面试过后发现真的需要学习以下框架了,不然又被忽悠让去培训.)~~~ 1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 [一对多映射] 多个学生可以被一个老师教[多对一映射] 部门与员工: 一个部门有多个员工[一对多映射] 多个员工属于一个部门[多对一映射] 1.2:多对多,举例说明: 项目和开发员工:[双向一对多即多对多映射] 一个项目有多个开发…
在我看来,Hibernate提供这些映射关系,常用就是一对一和多对一,并且在能不用连接表的时候尽量不要用连接表.多对多会用到,如果用到了,应该首先考虑底层数据库设计是否合理.   在实际开发中,在Hibernate关联关系之外常常还有另外一种选择方案,表各自作为单表映射,业务逻辑控制外键关系(有时候就是一个相关联的列,但不一定要加外键约束),这样更加灵活,并且数据的完整性同样有保证.   当然,“单表映射,业务控制外键关系”并不是说Hibernate的实体关联功能是多余的,Hibernate的实…
上篇我们介绍了关联映射的几种形式,有单向多对一,单向一对多,还有双向一对多.本篇接着介绍有关关联映射的其他几种映射方式,主要有以下几种: 基于外键的单向一对一关联映射 基于主键的单向一对一关联映射 单向多对多关联映射 一.基于外键的单向一对一关联映射      具有一对一关联的表结构也是很常见的,比如:一个人对应于一张身份证.于是我们的person表会有一个外键关联到 idcard表的主键,只要这个外键列唯一即可保证person到idcard表的关系由多对一变为一对一,也就是说单向的一对一关联映…
开篇前言       在前面的博文中,小编分别介绍了[SSH系列]-- hibernate基本原理&&入门demo,通过这篇博文,小伙伴们对hibernate已经有了基本的了解,以及hibernate的核心,采用对象化的思维操作关系型数据库.    [SSH系列]-- Hibernate持久化对象的三种状态 ,通过这篇博文的讲解,小伙伴们了解到java对象的生命周期,是从通过new语句创建开始,到不再被任何引用变量引用结束,结束后它占用的内存将被JVM垃圾回收机制收回.在hibernate…
1:Hibernate的关联关系映射的一对一外键映射: 1.1:第一首先引包,省略 1.2:第二创建实体类: 这里使用用户信息和身份证信息的关系,用户的主键编号既可以做身份证信息的主键又可以做身份证信息的外键,这里先做外键. 创建User.java: 用户和身份证一对一的关联关系映射       private IdCart idCart; IdCart.java: 身份证和用户,一对一的关系       private User user; package com.bie.bean; /**…
~~~接着之前的Hibernate框架接着学习(上篇面试过后发现真的需要学习一下框架了,不然又被忽悠让去培训.)~~~ 1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 [一对多映射] 多个学生可以被一个老师教[多对一映射] 部门与员工: 一个部门有多个员工[一对多映射] 多个员工属于一个部门[多对一映射] 1.2:多对多,举例说明: 项目和开发员工:[双向一对多即多对多映射] 一个项目有多个开发…
Hibernate Annotation关系映射的几种类型映射用法及使用方法(说明:以前实例的实体是user和role,主键分别是userid和roleid)   1)一对一外键关联映射(单向) @OneToOne(cascade=CascadeType.ALL)  //一对一外键关联,使用@OneToOne,并设置了级联操作 @JoinColumn(name="userid",unique=true)   //@JoinColum设置了外键的名称为userid(数据库字段名),如果不…
1.同一个数据库实例.同用户,多表创建视图 2.同一个数据库实例,不同用户下.多表创建视图 3.同一个数据库,不同数据库实例,多表创建视图 4.不同类型数据库,多表创建视图 1.同一个数据库实例.同用户,多表创建视图 暂缺.! 2.同一个数据库实例,不同用户下,多表创建视图 步骤一.创建实例,创建两个用户的sql: -- 创建实例 : Database Configuration Assistant 创建数据库 -- 查询表SYSTEM表空间的数据文件的物理路径 -- SELECT FILE_…
一.hibernate中一对一映射有两种 1 主键方式,一张表的主键是通过另一张表的主键生成的 2 外键方式,一张表添加外键引用另一张表的主键,并添加唯一unique约束 二.下面进行简单例子,用户和身份证 建表 CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR() NOT NULL); CREATE TABLE idcard( id INT PRIMARY KEY AUTO_INCREMENT, addr V…
在数据库中表和表之间的关系有几种,(一对一,一对多,多对多)一对一关系:可以选择任意一方插入外键(one-to-one:one-to-one<--->many-to-one[unique='true'])一对多关系:在多的一端插入一端的主键为外键(one-to-many<--->many-to-one)多对多关系:新建一个表,选择两个表的主键为表的两个外键(many-to-many<-->many-to-many>) 关系配置步骤: ①:分析1端和n端 ②:在1端…
案例:完成CRM的联系人的保存操作 需求分析 1. 因为客户和联系人是一对多的关系,在有客户的情况下,完成联系人的添加保存操作 技术分析之Hibernate的关联关系映射之一对多映射(重点) 1. JavaWEB中一对多的设计及其建表原则 2. 先导入SQL的建表语句 * 创建数据库:create database hibernate_03; 3. 编写客户和联系人的JavaBean程序(注意一对多的编写规则) * 客户的JavaBean如下 public class Customer { pr…
一.数据表的映射关系 在数据库领域中,数据表和数据表之间关系一般可以分为如下几种: 一对一:比如公民和身份证的关系,一个人只有一张身份证,同时每张身份证也仅仅对应一个人! 一对多:比如客户和订单之间的关系,每个客户可以同时下多张订单! 多对多:比如学生管理系统中,学生与课程,教师与学生之间的关系! 二.利用Hibernate实现一对一的表关系映射 以就以公司和总经理之间的关系为例. 1.首先建立基本数据模型 建立club和manager两个数据封装类 Club.java package com.…
技术分析之Hibernate的关联关系映射之一对多映射(重点)        1. JavaWEB中一对多的设计及其建表原则        2. 先导入SQL的建表语句                * 在资料中找到客户和联系人的SQL脚本        3. 编写客户和联系人的JavaBean程序(注意一对多的编写规则)        * 客户的JavaBean如下 public class Customer { private Long cust_id; private String cus…
hibernate中的映射是指Java类和数据库表中的属性来进行关联,然后通过类来操作数据库中,这就是简单的映射.…
单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映射来建表,最后生成的表是这样的: 可以看到我们只需要建立一张表就可以维护这个关系,这种方式就是单表继承映射,下面介绍配置方法: 新建实体类Person ,Student,和Teacher : public class Person { private int id; private String n…