Hibrtnate组件映射】的更多相关文章

Component映射 在hibernate中Component映射采用<component>标签即可 Component是某个实体的逻辑组成部分,它与实体类的主要差别在于,它没有oidComponent在DDD中被称为值类 采用Component的好处:实现对象模型的细粒度划分,复用率高,含义明确,层次分明 对象模型与关系模型的设计恰恰相反,对象模型一般是细粒度的,关系模型一般是粗粒度的 示例: 对象模型: 关系模型: 映射文件: <hibernate-mapping> <…
一.关系映射简介 在数据库中,表与表的关系,仅有外键.但使用hibernate后,为面向对象的编程,对象与对象的关系多样化:如 一对一,一对多,多对多,并具有单向和双向之分. 开始练习前,复制上一次项目,并更名为 二.一对一单向外键关联 例如:一个老师只教一个学生,一个学生只能被一个老师教 关系图如: 修改teahcer.java和student.java类(为了简单起见吧Student也更改为使用Annotation的形式) package com.model; import javax.pe…
Hibernate联合主键映射以及组件映射 在Hibernate中联合主键的形成有两种可能:一种是由多对多映射形成的,多对多映射会形成第三张表,一般来说第三张表的主键是由其他两张表的主键构成的(比如学生表,课程表,选课表).第二种情况就是很常见的情况,即只有一张表,表的主键是由本身的两个字段或以上构成的.比如:公司的财务统计表,其中有字段年份.月份.销售金额.在这张表中年份和月份才唯一确定一条记录.下面就来说说联合主键第二种情况的配置,就以上面的财务统计表来说明.对于联合主键的这种情况,我们经常…
一.组件映射 用注解配置组件映射: Husband为我们映射的类,wife是这个类的一部分(属性不能与husband中属性重名,不要写Entity注解,不要有主键) Husband类:(在getWife()方法上添加注解@Embedded) package cn.orlion.hibernate.model; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.G…
1:为什么要使用组件映射 答:建立关系数据模型的一个重要原则是在不会导致数据冗余的前提下,尽可能减少数据库表的数目及表之间的外键参照关系.以员工信息为例,员工信息中有员工的家庭地址信息,如果把地址信息单独放在一张表中,然后建立员工信息表和地址信息表之间的外键参照关系,当每次查询员工信息时,都需建立者两个表的连接.建立表的连接是很耗时的操作,为了提高数据库运行性能,可以把这两张表的信息整合在一张员工信息表EMPINFO中. 2:什么是组件映射:组件是一个被包含的对象,它和它的所有者同存于一张表中,…
Hibernate映射:一对一关联 1.按照外键映射 2.按照主键映射 组件映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映射方式分别完成以下持久化操作 (1)保存员工档案的同时分配给员工一个账号 (2)加载员工档案的同时加载账号信息 一:按照外键映射…
之所以把这两种映射放到一起说,是因为二者都是以复用为目的,减少了代码和配置量,这是相同点:二者之间的不同点类似继承和实现的区别:继承的类是一个事物的抽象,而实现的接口仅仅是功能的抽象. 继承映射 如上面所说,以下面类图为例: 它的映射方式有三种,它们的类和属性相同,只是映射文件不同,当然也导致映射的数据结构也不同,先一下以上三个类,再根据映射文件的不同说明每种映射方式. Animal public class Animal { private int id; private String nam…
1.按照外键映射(Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射) 实现需要: 创建实体类Users1和Resume1 public class Users1 { private Integer userid; private String username; private String userpass; private Resume1 resume1; } *********** public class Resume1 { private Integer…
前言 到目前位置,我们已经学习了一对一.一对多.多对一.多对多映射了-既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有两种方式 组合关系,组合关系对应的就是组件映射 继承关系,继承关系对应的就是继承映射 组件映射 组件映射实际上就是将组合关系的数据映射成一张表,组件类和被包含的组件类映射成一张表 有的时候,两个类的关系明显不是继承关系,但两个类的亲密程度很高,在一个类里边需要用到另外一个类-那么就在类中定义一个变量…
啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是一对一(一个用户只能有一份档案 一份档案只能属于一个永固) 我们无需建表,Hibernate会检查数据库中有没有对应的表,如果没有,自动生成 我们也可以用来看自动生成的表是什么样子的 一对一外键映射FK 那么接下来是小配置文件 user的小配置文件 <one-to-one name="resu…
                                                    Hibernate中映射一对一关联(按主键映射和外键映射)和组件映射 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射. 下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1)保存员工档案的同时分配给员工一个账号. (2)加载员工档案的同时加载账号信息. 1.按照外键映射 步骤一:创建实体类Users1和Resu…
1.在开发中,有的类信息比较复杂,而且某几个信息可以组成某一个部分,这个时候可以采用组件映射,组件映射是一张表映射到多个类.表结构 2.类的设计 Link.java public class Link { private String phone; private String qq; private String email; private String address; public Link() { } public Link(String phone, String qq, Strin…
前言 地址栏路由的发展经历了后端路由配置阶段.前后端分离阶段.直至单页面富应用阶段.本文来总结一下 vue-router 的相关知识点和用法. 正文 1.什么是 vue-router 路由 路由就是SPA(单页应用)的路径管理器,vue-router就是WebApp的链接路径管理系统. vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的页面应用,是用一些…
假设我们需要保存学生student的信息,student中有一个address属性,我们知道像这种信息其值可能会有多个,就像一个人会有两个以上的手机号,这种情况在hibernate中应该这样配置: 新建一个Address类,我们假设每个学生最多能保存3个地址: public class Address { private String addr1; private String addr2; private String addr3; //get/set方法省略 } 新建student实体类:…
将另外一个类嵌入到另外一个类 从而合并生成一张表 Husband.java package com.bjsxt.hibernate; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import j…
注解方式:   import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinColumns; import javax.persistence.OneT…
Hibernate缓存.组件.继承映射 三种状态: 临时状态:不受session管理,没有提交到数据库:没有执行sql之前,new对象的时候: 持久化状态:受session管理,提交到数据库:正在执行sql 游离状态:不受session管理,提交到数据库:session关闭后 Cache缓存:会先看看缓存里有没有,有就取出来,没有就到数据库取数据. Session的三个方法:flush.evict.clear 不同session不会共享数据. List与iterator的区别: List是直接到…
Component关联映射: 目前有两个类如下: 值对象没有标识,而实体对象具有标识,值对象属于某一个实体,使用它重复使用率提升,而且更清析. 以上关系的映射称为component(组件)关联映射 在hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid,component可以成为是值对象(DDD). 采用component映射的好处:它实现了对象模型的细粒度划分,层次会更加分明,复用率会更高. User实体类: public class User {…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/Annotation) 联合主键 一对一单向外键联合主键(Xml/Annotation) 一对一组件关联(XML/Annotation) 理解组件 领域驱动设计——自动生成数据库脚本 一对一关系的小结 一些出错问题的总结 自动生成数据库脚本 一般在项目开发过程中,我们的习惯是先建好数据库和表,然后在进…
目录 写在前面 文档与系列文章 组件之依赖对象 一个例子 总结 写在前面 周一至周四一直在成都出差,也一直没有更新博客了,一回到家第一件事就是扒一扒最近博客园更新的文章,然后把想看的收藏了,大概有20篇左右,包括基础的js或者jquery(快速浏览,复习基础),java方面的(主要了解实现业务的思想),asp.net webform\mvc(webform的快速浏览,mvc深入理解)等等,从昨天晚上到今天上午算是花费了7.8个小时的时间把收藏夹里面的文章看了一边. 现在就继续NHibernate…
hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 一.Hibernate配置文件详解 Hibernate配置文件有两种形式:XML与properties 个人建议使用XML,因为properties中不能配置关联的映射文件,在后续的实现中会带来一些没必要的编码: XML(hibernate.cfg.xml)文件详解: <?xml version="1.0" encoding="GBK"?>…
映射组成关系 •建立域模型和关系数据模型有着不同的出发点: –域模型: 由程序代码组成, 通过细化持久化类的的粒度可提高代码的可重用性, 简化编程 –在没有数据冗余的情况下, 应该尽可能减少表的数目, 简化表之间的参照关系, 以便提高数据的访问速度 •Hibernate 把持久化类的属性分为两种: –值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期 –实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期 •显然无法…
摘要 前面文章介绍了NHibernate对简单.net数据类型的映射对照表.NHibernate也可以映射复杂数据类型,这里介绍通过组件映射NHibernate值对象. 1. NHibernate引用对象和NHibernate值对象 NHibernate引用对象:指的是具有主键值的NHibernate实体对象,他必须是另一个NHibernate实体对象的属性.他所属的对象也可以理解为主对象,有一个从属的指向关系.例如:Order对象有个属性Customer,表示这个Order对象是属于哪个Cus…
一.普通组件映射配置 1.创建组件类,代码如下: package learn.hibernate.bean; /** * 组件类 */ public class Phones { private String companyPhone; private String homePhone; private String personalPhone; public Phones() { } public Phones(String companyPhone, String homePhone, St…
把这两种映射放到一起说,是因为这两种映射不像前面的复用型映射.数量和方向型映射那么分类鲜明,所以放到了这个“其他”里面. 复合主键映射 在关系模型中,复合主键和其他的主键方式没有很大区别,但是反映到对象模型的配置上面,差别就比较大了:在对象模型中,复合主键需要一个独立的类,以下面把年和月作为复合主键为例: 复合主键类 import java.io.Serializable; public class FiscalYearPeriodPK implements Serializable { //核…
一. 一对一关联映射 ²        两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²        有两种策略可以实现一对一的关联映射 Ø        主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联. Ø        唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系. 对象模型 实体类: /** 人-实体类 */…
本节内容 引入 方案1:直接添加 方案2:巧用组件 实例分析 结语 引入 通过前面7篇的学习,有点乏味了~~~这篇来学习一个技巧,大家一起想想如果我要在Customer类中实现一个Fullname属性(就是Firstname和Lastname的组合)该怎么做呢? 方案1:直接添加 “我知道!修改Customer类,添加一个Fullname属性!即Customer.Fullname!” “恩,完全正确......” “这就意味着在Customer类中把Firstname和Lastname两个属性重…
回顾Hibernate第二天: 1.  一对多与多对一 2. 多对多 3. inverse/cascade 4. 关联关系的维护 一对多: <set name="映射的集合属性" table="(可选)集合属性对应的外键表"> <key column="外键表的,外键字段" /> <one-to-many class="集合元素的类型" /> </set> 多对一: <ma…
1. 关系, 指的是对象之间的关系, 并不是数据库之间的关系. 2. 简化问题: a) 怎么写annotation b) 增删改查CRUD怎么写 对象处于下列关系之一 (一对一, 一对多, 多对多)时, 数据库表如何映射, 编程如何对待? 一个组有很多人, 但是一个人只属于一个组: 一对多 一对一, 一对多, 多对一, 多对多, 还有单向双向, 所以有7种细分 一对多双向和多对一双向一样 3. 一对一单向(主键,外键) 一对一双向(主键,外键) 4. 一对多单向 一对多双向 5.  多对一单向…
时隔第一次被UI思路激励,到现在1.0的粗糙版本发布,掐指一算整整半年了.半年之间,有些细节不断推翻重做,再推翻再重做.时隔今日,终于能先出来个东西了,这个版本很粗糙,主体功能大概能实现了,但是还是有很多很多的问题.不过有问题没事,可以进行修改完善,这是相对轻松的问题,最艰难的从无到有的创造才是最艰难的.好了,不废话了,我们直接进入正题 --- UI.js功能介绍. 首先介绍几个概念 分布式:原来的概念只有分布式计算,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这…