Hibernate单独使用 (三)表关联
来源:互联网 发布:主要的网络侦查技术有 编辑:程序博客网 时间:2024/06/06 16:39
一对一关联
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>
阅读全文
0 0
- Hibernate单独使用 (三)表关联
- Hibernate 简单使用(三)一对一关联映射
- Hibernate单独使用案例
- Hibernate 单独使用总结
- 单独hibernate 生成表
- java project单独使用hibernate
- hibernate 一对多关联(三)
- Hibernate一对一主键关联(三)
- Hibernate 第十讲 表关联关系(三)单向项一对一主键关联
- Hibernate单独使用 (二)表操作深入、主键、自动生成映射文件
- Hibernate单独使用 (一)建立和基本使用方法
- 如何使用hibernate实现多表关联
- Hibernate映射详解(三)--一对一主键关联映射
- Hibernate映射解析——关联映射(三)
- 【hibernate】关联映射那些事(三)----双向映射
- Hibernate 关联映射 之 一对多单项关联 (三)查询
- Hibernate 、多表关联映射-组件关联映射(component)
- Hibernate自关联(使用注解)
- Spring Cloud netflix概览和架构设计
- 图数据库:6 图数据库的内部结构
- Reverse Integer [LeetCode 7]
- 基于FormsAuthentication的用户、角色身份认证
- Spring架构理解
- Hibernate单独使用 (三)表关联
- TCP/IP协议学习笔记(一)
- Redis-list类型常用操作命令
- 25岁社招进阿里,从电商到有赞新零售,他仅1年就打开了马云一直想做的新领域!
- php get_called_class()函数与get_class函数的区别
- golang 反射(reflect)
- MySQL数据库性能优化-存储引擎详解(一)
- BZOJ[1877]晨跑 费用流
- 25岁社招进阿里,从电商到有赞新零售,他仅1年就打开了马云一直想做的新领域!