Hibernate单独使用 (三)表关联
2017-12-20 10:40
337 查看
一对一关联
1.建立PO包:School、Header的java,建立映射文件,建立hibernate配置文件,将两个hbm文件与其绑定
2.在School里面建立一个Header类型属性,在主动方建立一个被动方的属性
3.在School的hbm文件中增加
<one-to-one
name="主动内header属性名称"
class="header属性所在类名和包"
cascade="all|none"(是否级联)/>
添加两个表
School s2 = new School(); s2.setSid("005");
Header header = new Header(); header.setHid("0765")
s2.setHeader(header);
Transaction tran = session.beginTransaction();
session.save(s2);
tran.commit();
如果从Header查School,需要在Header内添加School类型属性
=================================================================
一对多关联
1.建立po包:Banji、Student、建立Hibernate配置文件,将两个hbm文件放入Hibernate主配置内
2.在Banji里面建立Set类型的属性,准备装学生
<set name="set的Banji内属性名称" table="对应的另一个表名称" lazy="false" 延迟加载选项增加性能
cascade="all|none" order-by="某属性来排序 asc">
<key column="需要寻找的外键列名">
</key>
<one-to-many class="另一个类的名称和包">
</set>
Set get=banji.getStudents();
Iterator ite = set.iterator();
while(ite.hasNext()){
Student stu = (Student)ite.next();
syso(stu.getSname());
}
添加个表
Student sut1 = new Student();
stu1.setBid("001");stu1.setSid("4567");
HashSet students = new HashSet();
students.add(stu1);
Banji banji = new Banji();
banji.setBid("001");banji.setRoom("803");
banji.setStudents(students);
Transaction tran = session.beginTransaction();
session.save(banji);
tran.commit();
===================================================================
多对多关联
1.建立第三个表:T_JIAOKE(TID,CID)
2.建立po:Course、Teacher、建立Hibernate配置文件,并绑定
3.在Teacher内创建Set courses,在Course内创建Set teachers
4.在两个hbm内配置
<set name="set属性名称" table="第三个对应的表名称" lazy="false" inverse="false"翻转为否,表示可
以控制别人>
<key column="本表在第三个对应表外键"></key>
<many-to-many calss="另一个表对应的类和包" column="另一个表再第三个表种对应的外键"/>
</set>
1.建立PO包:School、Header的java,建立映射文件,建立hibernate配置文件,将两个hbm文件与其绑定
2.在School里面建立一个Header类型属性,在主动方建立一个被动方的属性
3.在School的hbm文件中增加
<one-to-one
name="主动内header属性名称"
class="header属性所在类名和包"
cascade="all|none"(是否级联)/>
添加两个表
School s2 = new School(); s2.setSid("005");
Header header = new Header(); header.setHid("0765")
s2.setHeader(header);
Transaction tran = session.beginTransaction();
session.save(s2);
tran.commit();
如果从Header查School,需要在Header内添加School类型属性
=================================================================
一对多关联
1.建立po包:Banji、Student、建立Hibernate配置文件,将两个hbm文件放入Hibernate主配置内
2.在Banji里面建立Set类型的属性,准备装学生
<set name="set的Banji内属性名称" table="对应的另一个表名称" lazy="false" 延迟加载选项增加性能
cascade="all|none" order-by="某属性来排序 asc">
<key column="需要寻找的外键列名">
</key>
<one-to-many class="另一个类的名称和包">
</set>
Set get=banji.getStudents();
Iterator ite = set.iterator();
while(ite.hasNext()){
Student stu = (Student)ite.next();
syso(stu.getSname());
}
添加个表
Student sut1 = new Student();
stu1.setBid("001");stu1.setSid("4567");
HashSet students = new HashSet();
students.add(stu1);
Banji banji = new Banji();
banji.setBid("001");banji.setRoom("803");
banji.setStudents(students);
Transaction tran = session.beginTransaction();
session.save(banji);
tran.commit();
===================================================================
多对多关联
1.建立第三个表:T_JIAOKE(TID,CID)
2.建立po:Course、Teacher、建立Hibernate配置文件,并绑定
3.在Teacher内创建Set courses,在Course内创建Set teachers
4.在两个hbm内配置
<set name="set属性名称" table="第三个对应的表名称" lazy="false" inverse="false"翻转为否,表示可
以控制别人>
<key column="本表在第三个对应表外键"></key>
<many-to-many calss="另一个表对应的类和包" column="另一个表再第三个表种对应的外键"/>
</set>
相关文章推荐
- 使用hibernate的Criteria来动态改变对象关联方式
- hibernate使用@manyToOne注解关联非主键列
- Hibernate单独使用 (一)建立和基本使用方法
- Hibernate 多对多关联查询条件使用
- hibernate使用list进行多对多关联时中间表的主键策略
- hibernate 管理 Session(单独使用session,不spring)
- Hibernate 简单使用(六)多对多关联映射(二)
- (原创)Hibernate 使用过程中(尤其是多对多关联中的级联保存和级联删除)的注意事项(基于项目的总结)
- 在hibernate中如果一对多关联,并以多的一方的参数作为条件则必须使用
- hibernate多对一关联映射(cascade的使用)
- hibernate使用注解实现多对多关联映射
- hibernate多对一关联映射(cascade的使用)
- 如何使用hibernate实现多表关联
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- hibernate多对一关联映射(cascade的使用)
- 在myeclipse中使用Hibernate关联mySql中的表
- 权限管理中使用Hibernate Annotation的多对多关联
- hibernate 管理 Session(单独使用session,非spring)
- 在Hibernate中使用HQL通过Join进行关联查询
- Hibernate高级实体关联映射之多值的实体关联(一对多关联,使用list)