单向一对多:
在一的一端 实体内加一个set
映射文件中加入
<set name="users">
<key column="groupid"/>
<one-to-many class="User" />
</set>
这样写,需要先将多的一端保存,再保存一的一端,然后更新多的一端的外键:
sql:
Hibernate: insert into t_user (name, password, content) values (?, ?, ?)
Hibernate: insert into t_group (name) values (?)
Hibernate: update t_user set groupid=? where id=?
如果在set标签内加入级联:cascade="all"
这样不用单独保存多的一端,在保存一端的时候会级联保存多的实体。
sql:
Hibernate: insert into t_group (name) values (?)
Hibernate: insert into t_user (name, password, content) values (?, ?, ?)
Hibernate: update t_user set groupid=? where id=?
这样都会执行更新语句较麻烦
双向一对多:
在一的一端,同 单向一对多的一
在多的一端,实体,加入一个“一”的实体
映射文件加入:<many-to-one name="groupid" class="Group" />
sql:
Hibernate: insert into t_group (name) values (?)
Hibernate: insert into t_user (name, password, content) values (?, ?, ?)
Hibernate: update t_user set groupid=? where id=?
在一的一端 加入反转控制: inverse="true"
sql:
Hibernate: insert into t_group (name) values (?)
Hibernate: insert into t_user (name, password, content, groupid) values (?, ?, ?, ?)
引自其它资料:
关于inverse属性:
inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签<set>上,
默认inverse为false,所以我们可以从”一“一端和”多“一端维护关联关系,
如果设置成inverse为true,则我们只能从多一端来维护关联关系
inverse和cascade
* inverse是关联关系的控制方向
* cascade操作上的连锁反应
分享到:
相关推荐
本主题聚焦于"hibernate单向多对多映射",特别是在XML配置文件中的实现。在这个过程中,我们将探讨多对多关系的原理,以及如何在Hibernate中通过XML配置文件来定义这种关系。 首先,我们需要理解多对多关系的概念。...
“Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...
在探讨“Hibernate一对多双向”这一主题时,我们首先需要...总之,“Hibernate一对多双向”关联在企业级应用中非常常见,通过深入理解其配置和实现原理,开发者可以更好地设计和优化数据库模型,以满足复杂业务需求。
单向一对一映射通常涉及一个实体持有另一个实体的引用,而双向一对一映射则意味着两个实体都可以互相引用。这种关联关系在数据库层面通常通过主键外键约束来实现,但在代码层面则通过注解来表达。 首先,我们需要...
本篇将详细探讨"一对多单向和双向映射"这一主题,结合标签中的"源码"和"工具",我们将深入理解这些概念,并可能涉及到具体的代码实现。 首先,映射是ORM框架的核心,它允许开发者将数据库表与Java类之间的关系进行...
本篇文章将深入探讨Hibernate中注解的一对多、多对多和一对一关系映射。 ### 一对多关系 在现实生活中,例如一个班级有一个班主任,而班主任可以管理多个学生,这就是典型的“一对多”关系。在Hibernate中,我们...
总结来说,Hibernate的一对多和多对一关联是数据库实体间关系映射的关键部分,它们提供了强大的工具来处理复杂的数据库交互。多对多关系和双向关联进一步扩展了这一功能,让数据管理更加灵活。在实际开发中,根据...
在这个“hibernate实例(一对多,多对一)”的主题中,我们将深入探讨两种重要的关联关系:一对一(One-to-One)和一对多(One-to-Many)。 **一对一关联(One-to-One)** 在一对一关联中,一个实体与另一个实体之间...
本文主要探讨的是Hibernate中的两种关联关系:多对一单向关联和多对一双向关联。通过理解这两种关联方式,我们可以更好地设计和实现复杂的数据库模型。 首先,我们来看**多对一单向关联**。这种关联意味着一个实体...
通过以上内容,我们对Hibernate中的一对多单向关联映射有了全面的理解,包括其配置方式、代码实现、使用技巧以及需要注意的细节。在实际项目开发中,正确理解和运用这些知识能够有效地提升数据操作的效率和代码的可...
4. **双向关联**:在一对一和一对多关联中,关联可以是单向或双向的。双向关联意味着两个实体都能访问到彼此,需要在双方都添加相应的注解。例如,对于一对一关联,需要在双方都使用`@OneToOne`,对于一对多,需要在...
在单向一对多关系中,一个实体(父实体)可以有多个其他实体(子实体)的引用,但子实体并不知道它们属于哪个父实体。例如,一个班级有多个学生,但学生并不知道他们属于哪个班级。配置时,使用`@OneToMany`注解在父...
1.1 单向关联:在单向一对多关联中,一个实体类知道另一个实体类,而另一个实体类并不知情。这通常通过在一方添加一个集合属性来实现,该集合包含另一方的实例。例如,`Department`类可能有一组`Employee`对象: ``...
在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...
标题 "Hibernate一对多关联" 涉及到的是Java持久化框架Hibernate中的一个重要关系映射概念,这在开发企业级应用时非常常见。在数据库设计中,一对多关系表示一个表(父表)中的记录可以与另一个表(子表)中的多个...
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
- **双向一对一**:两个实体相互知道对方,它们都包含对方的引用,分别在两个类中使用`@OneToOne`和`@MapsId`或`@PrimaryKeyJoinColumn`注解。 ### 2. `@OneToOne`注解 在单向一对一关系中,`@OneToOne`注解用于...