一对一关系映射

hibernate提供了两种一对一关联关系的方式,按照外键映射和按照主键映射.

一对唯一外键关联映射是多对一关联映射的特例

可以采用标签,指定多的一端的unique=true,这样就限制了多的一端的多重性为一。

通过这种手段映射一对一唯一外键关联

采用主键不要加字段,采用外键是需要加字段的。一对一唯一外键关联其实就是多对一的一个特例,只是限制了unique=true

的含义就是在多的一端添加一个外键指向一的一端,不过这里要限制唯一性。这种情况下其实还是多对一映射。

二.hibernate一对一唯一外键关联映射(双向关联Person<-->IdCard)

一对一唯一外键关联双向,需要在另一端(idcard),添加标签,指示hibernate如何加载
其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式

默认是与主键比较,Property-ref=”idCard”会指定与哪一个字段比较.

加入标签和数据库没有关系,是告诉Hibernate怎么来做这件事,所以数据库不用重新导出,不像因为. 要在表里加字段

注:

标签 含义:指示如何加载关联对象,或者引用对象,默认根据主键加载,

标签含义:加入外键在多的一端,指向一的一端

01.(1)保存员工档案的同时分配给员工一个账号..

在映射持久化对象中的属性时,需要注意一些问题

Resume1.hbm.xml

<many-to-many

  name="users1"

  class="cn.happy.entity.Users1"

  column="resuserid"

  cascade="all"  //为了

  unique="true" //表明每一个resume1对象和User1对象之间一对一的关联关系

/>

Users1.hbm.xml

<one-to-one name="resume1"

  class="cn.happy.entity.User"

  property-ref="users1"  //表明Resume1的user1属性建立了从User1对象到Resume1对象的关联

/>

时间: 2024-12-28 09:20:25

一对一关系映射的相关文章

Hibernate多表关系配置——一对一关系映射

两个对象之间是一对一的关系,如Person-IdCard 有两种策略可以实现一对一的关联映射 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联 唯一外键关联 外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系: 1.实体对象 1.1 Person实体对象 package demo.entity; /** * 人实体 * @author Don * @date:日期:2

Hibernate One-to-One Mappings 一对一关系映射

Hibernate One-to-One Mappings 一对一关系映射 关键:一对一关系映射和多对一关系映射很像,只是unique 属性值为 true 例子:一个员工只能有一个地址. Hibernate框架的使用步骤: 1.创建Hibernate的配置文件(hibernate.cfg.xml) 2.创建持久化类,即其实例需要保存到数据库中的类(Employee.java) 3.创建对象-关系映射文件(Employee.hbm.xml) 4.通过Hibernate API编写访问数据库的代码

mybatis中一对一关系映射

一对一关系中普通的配置方式 一.多表连接查询语句: <select id="selectStudentWithAddress" parameterType="int" resultMap="StudentWithAddressResult"> select s.stud_id, s.name, s.email,s.dob,s.phone, a.addr_id, a.street, a.city, a.state, a.zip,a.co

Hibernate 集合映射 一对多多对一 inverse属性 + cascade级联属性 多对多 一对一 关系映射

1 . 集合映射 需求:购物商城,用户有多个地址. // javabean设计 // javabean设计 public class User { private int userId; private String userName; // 一个用户,对应的多个地址 private Set<String> address; private List<String> addressList = new ArrayList<String>(); //private Str

Hibernate学习(五)———— hibernate一对一关系映射详解

一.一对一关系的概述 一对一关系看起来简单,其实也挺复杂的.其中关系就包含了四种,单向双向和主键关联外键关联. 什么意思呢,也就是包含了单向一对一主键关联.双向一对一主键关联,单向一对一外键关联,双向一对一外键关联, 这四种中,单双向就不用在说了把,就是看你业务需求来去设置是否是单双向,而外键关联也很简单,前面的一对多和多对多度是依靠外键关联关系来写的.那主键关联关系是怎么样的呢?其实跟外键关联差不多,唯一的区别就是,让一个类的主键当作外键使用来指向另一个关联类的主键,从而两个类的主键就达到了同

hibernate(五) hibernate一对一关系映射详解

序言 之前讲解了一对多(单向.双向).多对多(双向),今天就讲解一下最后一个关系,一对一. 心情不错.状态也挺好的,赶紧写一篇博文造福一下大家把. --WZY 一.一对一关系的概述 一对一关系看起来简单,其实也挺复杂的.其中关系就包含了四种,单向双向和主键关联外键关联. 什么意思呢,也就是包含了单向一对一主键关联.双向一对一主键关联,单向一对一外键关联,双向一对一外键关联, 这四种中,单双向就不用在说了把,就是看你业务需求来去设置是否是单双向,而外键关联也很简单,前面的一对多和多对多度是依靠外键

Hibernate一对一关系映射

Hibernate提供了两种一对一映射关联关系的方式: 1)按照外键映射 2)按照主键映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映射方式分别完成以下持久化操作 (1)保存员工档案的同时分配给员工一个账号 (2)加载员工档案的同时加载账号信息 一:按照外键映射 HibernateUtil工具类(用于获取session和关闭session) package cn.util; import org.hibernate.Session

hibernate4之一对一关系映射(二)

示例:一个用户(user) 住一个地址(address),一个地址有一个用户. public class User{     private Integer id;       private String name;     private Address address;       //getter and setter   } public class Address {     private Integer id;     private String addressName;   

sqlalchemy一对一关系映射

#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Text, ForeignKey from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker,relationship,backref from random import r