Hibernate映射解析——关联映射(一)

上篇我们谈到了Hibernate的基本映射,接下来为大家介绍Hibernate的多对一关联映射。

多对一关联映射:在多的一端加了个外键,外键指向一的一端,这样的好处是让Hibernate访问多的一端的时候,自动把1端给加上。

对象模型图:

关系模型图:

多对一关联映射主要是靠下面一句来进行维护,即在多的一端加上如下标签

<many-to-noe name="group"  column="groupid"/>

User.hbm.xml配置文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.blackfox.hibernate.User" table="t_user">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<many-to-one name="group" column="groupid" />
	</class>
</hibernate-mapping>

Group.hbm.xml配置文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.blackfox.hibernate.Group"  table="t_group">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
	</class>
</hibernate-mapping>

多对一关联映射和一对多映射原理是一样的,都是在多的一端加入一个外键指向一的一端,但是他们又有区别,到底区别何在呢?下一篇文章将为大家介绍Hibernate一对多映射。

时间: 2024-08-24 16:46:31

Hibernate映射解析——关联映射(一)的相关文章

Hibernate映射解析——关联映射(四)

下面为大家介绍一对一关联映射的第二种实现方式,即唯一外键关联. 唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系. 唯一外键关联也采用两种方式,即单向与双向.对象模型都与主键关联的单双向一致,不同的是形成的关系模式. 单向唯一外键: 采用<many-to-one>标签来映射,指定多的一端unique为true,这样就限制了多的一端的多重性唯一. 关系模型:  IdCard.hbm.xml  <?xml version="1

Hibernate映射解析——关联映射(三)

下面将介绍Hibernate另一种关联映射方式,即一对一映射. 一对一关联映射有两种实现策略:主键关联映射和唯一外键关联映射. 主键关联映射:让两个对象具有相同的主键值,来证明它们之间的一 一对应关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联. 1. 一对一主键关联: 对象模型: 关系模型: IdCard.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC &quo

Hibernate映射解析——关联映射(二)

在前一篇文章,我们说了多对一和一对多映射原理是一样的,都是在多的一端加入一个外键指向一的一端. 区别在于维护的关系不同. 多对一维护的关系:多指向一的关系,如果维护了多指向一的关系,那么加载多的时候会把一加载上来 一对多维护的关系:一指向多的关系,如果维护了一指向多的关系,那么加载一的时候会把多加载上来 一对多映射包含两种映射方式: 1.单向一对多 对象模型图: 关系模型图: Classes.hbm.xml配置文件 <?xml version="1.0"?> <!DO

Hibernate之1-N关联映射

一.Hibernate之1-N关联映射 1. 哪边是 1 , 哪边是多 ? 需要从业务的角度来说明.例如,Employee 和 Department 之间就是 n-1 的关联关系,Order 和 Customer 之间也是 n-1 的关联关系. 1). 关联关系是有方向的: 2). 如何在类中来建立关联关系呢 ? 解:通过成员变量的方式即可. 2. 单向 n-1 关联关系 1). 域对象中,在 Order 中声明一个 Customer 类型的成员变量,并提供 setter.getter publ

hibernate多对一关联映射

hibernate多对一关联映射: 实体类 (POJO) public class Student{ private int stuId; private String stuNum; private String stuName; private ClassRoom cr; } public class ClassRoom{ private int claId; private String claName; } 映射文件 <class name=" Student" tabl

Hibernate一对一双向关联映射

关键原因在于对象模型具有方向性: 单向:一端只能加载另一端,不能反过来. 双向:两端都可以加载另一端. 问题来了:如何我们想从身份证端(IdCard)加载人(Person),怎么办呢? 下面我们开始介绍一对一的双向关联映射. 映射原理 双向关联映射与单向关联映射的原理是一样的,双向关联映射并不影响存储,只影响加载.所以,双向关联映射和单向关联映射的关系模型是一样的即数据库的表结构是一样的,只是IdCard的实体类和配置文件(IdCard.hbm.xml)发生了一点点变化. 对象模型 从上图中可以

【Hibernate步步为营】--关联映射之多对一

上篇文章讨论了Hibernate的基本映射,一个实体类对应着一张表,在相应的Hibernate Mapping文件中使用<class>标签映射.并且实体类中的普通属性对应着表字段,使用<property>标签映射.另外在构造实体类时应注意:在实体类中应实现无参的默认的构造函数,提供一个标示,建议不要使用final修饰实体类,为实体类生成getter和setter方法,最后介绍了几种主要的主键生成策略,接下来讨论多对一映射. 一.关联映射之多对一 对于多对一关联映射其实很容易理解,在

【Hibernate】——一对一关联映射

两个对象之间如果是一对一的关系,如Person-IdCard.在Hibernate中有两种策略可以实现一对一的关联映射: 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表得主键来关联. 唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系: 而每种策略又分为两种方向的对应关系,即单向一对一关系和双向一对一关系.分类的原因一般是由需求决定的,单双向是站在不同的角度去看人

hibernate的数据关联映射

数据关联映射分为:一对多.多对一,一对一,多对多. cascade属性• save-update:在执行保存和修改是进行级联操作• delete:在执行删除时进行级联操作• all:在所有情况下进行级联操作• none:不进行级联操作(默认) 抓取策略 一对多.多对一 一对多.多对一持久化类设计 // User类 public class User { private int id; private String name; private int age; private Set<Addres