Hibernate关联映射
2010-08-06 14:27
176 查看
如果是<many-to-one>则其后面的name属性为“one”的一方
如果是<one-to-many>则其后面的name属性为“many”的一方
双向 一对多关联== 单向一对多+单向多对一;
1.单向多对一:
在实体类里将多的一方(Blog类)的外键 userId换成Users类的user
在配置文件Blog.hbm.xml里添加
<many-to-one name="user" //name属性对应的是Blog类里的user(即刚刚改过来的那个)
class="edu.myblog.ssh.entity.Users">
<column name="user_id" /> //user_id为blog表里的外键
</many-to-one>
2.单向一对多:
配置一对多关联时,set节点要加一个inverse(反转)属性 一般设为true即由对方(多方)管理双方的关联关系
在为“一”的方(相对于“一对多”中的“多”来说)即Users类中实例化一个Set类型的对象blog 即:Set blogs=new HashSet();
在配置文件Users.hbm.xml里添加
<set name="blogs"> //name属性为 Users类即“一”方中实例化的那个Set对象
<key column="user_id" /> //column属性为多的一方的外键
<one-to-many class="edu.myblog.ssh.entity.Blog"/>//注意class的路径
</set>
3.多对多:
多对多关系中,多采用中间表来关联两个有多多关系的表的.如下Courses.hbm.xml文件:
<set name="stu" table="stu_course_tec"> <!--table 就是中间表,在数据库中建立的联系表-->
<key column="cid" /> <!--key中的column是中间表中字段,应该也可以说是中间表中的外键,对应的是该映射文件中的主健-->
<many-to-many class="Student" column="sid" /> <!--column是中间表中字段-->
</set>
Student.hbm.xml文件:
<set name="course" table="stu_course_tec">
<key column="sid" />
<many-to-many class="entity.Courses" column="cid" />
</set>
如果是<one-to-many>则其后面的name属性为“many”的一方
双向 一对多关联== 单向一对多+单向多对一;
1.单向多对一:
在实体类里将多的一方(Blog类)的外键 userId换成Users类的user
在配置文件Blog.hbm.xml里添加
<many-to-one name="user" //name属性对应的是Blog类里的user(即刚刚改过来的那个)
class="edu.myblog.ssh.entity.Users">
<column name="user_id" /> //user_id为blog表里的外键
</many-to-one>
2.单向一对多:
配置一对多关联时,set节点要加一个inverse(反转)属性 一般设为true即由对方(多方)管理双方的关联关系
在为“一”的方(相对于“一对多”中的“多”来说)即Users类中实例化一个Set类型的对象blog 即:Set blogs=new HashSet();
在配置文件Users.hbm.xml里添加
<set name="blogs"> //name属性为 Users类即“一”方中实例化的那个Set对象
<key column="user_id" /> //column属性为多的一方的外键
<one-to-many class="edu.myblog.ssh.entity.Blog"/>//注意class的路径
</set>
3.多对多:
多对多关系中,多采用中间表来关联两个有多多关系的表的.如下Courses.hbm.xml文件:
<set name="stu" table="stu_course_tec"> <!--table 就是中间表,在数据库中建立的联系表-->
<key column="cid" /> <!--key中的column是中间表中字段,应该也可以说是中间表中的外键,对应的是该映射文件中的主健-->
<many-to-many class="Student" column="sid" /> <!--column是中间表中字段-->
</set>
Student.hbm.xml文件:
<set name="course" table="stu_course_tec">
<key column="sid" />
<many-to-many class="entity.Courses" column="cid" />
</set>
相关文章推荐
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- Hibernate学习_009_一对一关联映射
- hibernate一对一主键关联映射双向
- Hibernate 、多表关联映射-组件关联映射(component)
- Hibernate 、继承关联映射
- Hibernate<四> Hibernate关联映射
- Hibernate的单向关联映射应用
- (五)hibernate关联映射之——多对一映射
- Hibernate为什么一定要做关联映射?
- hibernate 多对多和多对一关联映射
- Hibernate读书笔记-----Hibernate的关联映射之N-1关联映射
- Hibernate读书笔记-----Hibernate的关联映射之N-N关联映射 .
- Hibernate 关系映射(五) 基于主键关联的单向1:1
- 【HIbernate框架学习】:Hibernate对象关系映射之单向多对多关联映射
- Hibernate关系映射 --- 一对一实例分析(双向关联,是基于主键的)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- hibernate---一对多关联映射
- 【Hibernate步步为营】--双向关联一对一映射详解(二)
- Hibernate一对一双向关联映射
- Hibernate关联映射--一对多映射