刚刚写的是基于外键的单向一对一.  那么双向一对一就是在单向一对一的基础上稍微改动就可以了. account.java和account.hbm.xml都不用变动  只要我们小小的变动address.java与address.hbm.xml就可以了. 唯一外键关联较主键关联映射的好处就是,万一哪天需求变了,这两个对象的关系由一对一变为多对一,那么直接把外键唯一的约束去掉就行. 而且唯一外键关联其实就是多对一关联的一种特殊情况,下面将会介绍多对一关联的情况.…
事实上,单向1-1与N-1的实质是相同的,1-1是N-1的特例,单向1-1与N-1的映射配置也非常相似.只需要将原来的many-to-one元素增加unique="true"属性,用于表示N的一端也必须是唯一的,在N的一端增加了唯一的约束,即成为单向1-1.基于外键的单向1-1的配置将与无连接表N-1关联的many-to-one增加unique="true"属性即可. 一.模型介绍 一个人(account)对应一个地址(address). 二.实体 account类…
基于外键的双向一对一关联映射 需要在一端添加<one-to-one>标签,用property-ref来指定反向属性引用. 还是通过刚才用户和地址来演示双向一对一关联. 代码演示 一.实体类 Account.cs,需要添加被控端的引用 package com.lxit.entity; import java.io.Serializable; public class Account implements Serializable{ public Account(){ } private int…
之前简单介绍了基于外键的单项一对一的关联映射关系,本文简单介绍基于外键的双向一对一的关联映射. 1.设计表结构 表结构对于双向一对一来说没有多少改变,只是双向都可以获取到对方. 2.创建Person对象 3.创建IdCard对象 4.写hbm.xml文件 5.生成数据库表 生成sql语句 6.新增数据 在新增数据时与单项一对一并没有什么改变.   生成sql语句  7.查询(通过Person查询IdCard) 在这里发现通过person查询IdCard需要使用3条sql语句,原因是在Person…
这篇讲解 基于外键的双向一对一关联映射 1.考察如下信息,人和身份证之间是一个一对一的关系.表的设计 2.类结构 Person.java public class Person implements Serializable{ private int id; private String name; private IdCard idCard; public Person() { } public Person(String name) { super(); this.name = name;…
这篇 基于主键的双向一对一关联映射 1.依然考察人和身份证的一对一关系,如果采用主键关联,那么其表结构为: 2.类结构 Person.java public class Person implements Serializable{ private String id; private String name; private IdCard idCard; public Person() { } public Person(String name) { super(); this.name =…
一.基于外键的双向1对1 对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素.为many-to-one元素增加unique="true" 属性来表示为1-1关联 另一端需要使用one-to-one元素,该元素使用 property-ref 属性指定使用被关联实体主键以外的字段作为关联字段 1.实体类 部门类(Department .java) public class Department { private Integer dId;…
一.关系映射简介 在数据库中,表与表的关系,仅有外键.但使用hibernate后,为面向对象的编程,对象与对象的关系多样化:如 一对一,一对多,多对多,并具有单向和双向之分. 开始练习前,复制上一次项目,并更名为 二.一对一单向外键关联 例如:一个老师只教一个学生,一个学生只能被一个老师教 关系图如: 修改teahcer.java和student.java类(为了简单起见吧Student也更改为使用Annotation的形式) package com.model; import javax.pe…
一.多对一 多对一(或者一对多):在学生与老师的情况下,一个老师可以教多个学生,但一个学生只能被教一个老师教: 对于类:在多的那方拥有一的那方的一个实体 二.修改student.java和teacher.java类 复制03工程,并更名为Hibernate_04_ManyToOne: 在多的一方中添加@ManyToOne注解 package com.model; import javax.persistence.Embedded; import javax.persistence.Entity;…
1)建立Person类: public class Person { private Integer id; private String name; private IdCard IdCard; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getId() { return id; } public void setId…