Hibernate映射之多对一关联映射
2013-10-31 21:02
190 查看
Hibernate让我们可以以面向对象的思维来处理数据,这让我又一次加深了什么是面向对象!
这里通过一个小例子简单介绍,hibernate中的多对一关联映射——many-to-one!
以用户和用户组两个实体的映射为例:
他们的关系如图
这里一个用户组包含多个用户,那么用户是one端,用户组是many端。
User实体类:
用户组实体类
用户的映射文件
用户组的映射文件
通过多对一映射,我们就很容易的完成了开始看到的这样关联关系。
在MySql数据库中,这样的对应关系导出的表如图:
使用多对一还有一些问题需要注意,例如数据的保存,我们要在多的一端维护数据,即要先保存组实体,在保存用户实体。
当然,我们也可以使用级联操作——cascade:在保存对象的时候,自动保存它所关联的对象。至于级联操作,这里不再详述。
这里通过一个小例子简单介绍,hibernate中的多对一关联映射——many-to-one!
以用户和用户组两个实体的映射为例:
他们的关系如图
这里一个用户组包含多个用户,那么用户是one端,用户组是many端。
User实体类:
public class User { //用户代码 private String id; //用户姓名 private String name; //用户密码 private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }
用户组实体类
public class Group { //组ID private String id; //组名称 private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
用户的映射文件
<hibernate-mapping> <class name="User" table="t_user"> <id name="id"> <generator class="assigned"/> </id> <property name="name"/> </class> </hibernate-mapping>
用户组的映射文件
<hibernate-mapping> <class name="group" table="t_group"> <id name="id"> <generator class="assigned"/> </id> <property name="name"/> <many-to-one name="group" column="groupid"/>
</class> </hibernate-mapping>
通过多对一映射,我们就很容易的完成了开始看到的这样关联关系。
在MySql数据库中,这样的对应关系导出的表如图:
使用多对一还有一些问题需要注意,例如数据的保存,我们要在多的一端维护数据,即要先保存组实体,在保存用户实体。
当然,我们也可以使用级联操作——cascade:在保存对象的时候,自动保存它所关联的对象。至于级联操作,这里不再详述。
相关文章推荐
- Hibernate高级实体关联映射之多值的实体关联(多对多关联的两种思路之一)
- spring+hibernate 关联映射
- hibernate-关系映射(一对多单向关联)-9
- hibernate学习_关联映射
- Hibernate关系映射(1)_一对一单向外键关联
- Hibernate关联映射
- Hibernate 关联映射之---- 一对一双向映射
- hibernate之多对一关联映射
- hibernate多对一关联映射
- Hibernate读书笔记-----Hibernate的关联映射之组件属性关联关系
- 【HIbernate】(五)关联映射之多对一映射
- hibernate 对象关联,映射非主键字段
- Hibernate 关联映射 之多对一关联(一)
- hibernate关联映射
- Hibernate关联映射 --- 一对多实例分析(双向关联)
- Hibernate 关联映射
- Hibernate 关联映射 多对多
- 一口一口吃掉Hibernate(五)——一对多单向关联映射
- 【Hibernate步步为营】--双向关联一对一映射详解(二)
- 8.1 Hibernate:一对一关联映射