7、one2many单向
2015-10-10 18:20
232 查看
one2many单向
1 1的一方的hbm.xml文件的配置
2 关于one2many的测试代码
2.1 测试Add,会发出五条sql,三条插入,两条更新
2.2 测试懒加载-----再用到的时候才回去发出sql语句
2.3 关于lazy=extra,会智能的用一些sql语句去查询,如果输出的是int类型,会去select count(*)
2.4
1 1的一方的hbm.xml文件的配置
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.baowei.entity"> <class name="Classroom" table="classroom"> <id name="id"> <generator class="native" /> </id> <property name="name" /> <property name="grade" /> <!-- 使用了lazy=extra之后会稍微智能一些,会根据去的值的不同来判断是调用count和获取投影 --> <set name="stus" lazy="extra"> <key column="mid" /> <!-- key用来指定在对方的外键的名称 --> <one-to-many class="Student" /> <!-- class用来设置列表中的对象类型 --> </set> </class> </hibernate-mapping>
2 关于one2many的测试代码
2.1 测试Add,会发出五条sql,三条插入,两条更新
public void testAdd01() { Session session = null; try { session = HibernateUtil.openSession(); session.beginTransaction(); Student stu1 = new Student(); stu1.setName("猪八戒"); stu1.setNo("001"); Student stu2 = new Student(); stu2.setName("孙悟空"); stu2.setNo("002"); session.save(stu2); session.save(stu1); session.save(stu2); Classroom c = new Classroom(); c.setGrade(2012); c.setName("计算机网络技术"); // //设置关联关系 c.getStus().add(stu1); c.getStus().add(stu2); session.save(c); // 此时会发出5条sql,三条查询,两条更新 session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); if (session != null) session.getTransaction().rollback(); } finally { // HibernateUtil.close(session); } }
2.2 测试懒加载-----再用到的时候才回去发出sql语句
2.3 关于lazy=extra,会智能的用一些sql语句去查询,如果输出的是int类型,会去select count(*)
public void testAdd02() { Session session = null; try { session = HibernateUtil.openSession(); session.beginTransaction(); Classroom c = (Classroom) session.load(Classroom.class, 1); System.out.println(c.getStus().size()); //如果使用了 lazy=extra,sql语句会进行一些优化 session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); if (session != null) session.getTransaction().rollback(); } finally { HibernateUtil.close(session); } }
2.4
相关文章推荐
- Android 源码获取——在Windows环境下通过Git得到Android源代码
- 发生xib文件关联不到.h文件时,可以尝试重新打开.h文件,再进行关联
- 通过zssh在服务器和本地之间上传和下载文件
- 排序算法——插入排序
- oracle创建用户
- OpenCV基本绘图
- 网络小白的自言自语
- loadrunner中定义数组
- oracle创建表相关
- 《Neural Networks for Machine Learning》 by Hinton 学习笔记(一)
- LightOJ 1138 Trailing Zeroes (III)
- 第六周项目3括号的匹配
- Android中的GraphicBuffer同步机制-Fence
- XSD中的内置数据类型
- CUDAExample-0-asyncAPI
- BZOJ 3922 - Karin的弹幕
- JUnit4 与 JMock 之双剑合璧
- 短信验证安卓集成mob.com
- Android之菜单总结
- mocha测试