4.一对多单向关联(班级对学生):测试
2016-04-19 14:50
393 查看
package com.bjpowernode.hibernate; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import org.hibernate.Session; import junit.framework.TestCase; public class One2ManyTest extends TestCase { public void testSave1() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); Student student1 = new Student(); student1.setName("张三"); Student student2 = new Student(); student2.setName("李四"); Classes classes = new Classes(); classes.setName("动力节点"); Set students = new HashSet(); students.add(student1); students.add(student2); classes.setStudents(students); //抛出TransientObjectException //因为Student不是Persistent状态的对象,它是Transient状态的对象 session.save(classes); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testSave2() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); Student student1 = new Student(); student1.setName("张三"); session.save(student1); Student student2 = new Student(); student2.setName("李四"); session.save(student2); Classes classes = new Classes(); classes.setName("动力节点"); Set students = new HashSet(); students.add(student1); students.add(student2); classes.setStudents(students); //可以成功保存数据 //但是会发出多余的update语句来维持关系 session.save(classes); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testLoad1() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); Classes classes = (Classes)session.load(Classes.class, 2); System.out.println("classes.name=" + classes.getName()); Set students = classes.getStudents(); for (Iterator iter=students.iterator(); iter.hasNext();) { Student student = (Student)iter.next(); System.out.println("student.name=" +student.getName()); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } }
相关文章推荐
- 关于git 如何fork远程文件到自己私有仓库
- sublime Text快捷键
- 关于数据库连接
- Java测试MongoDB
- ubuntu下直接连接远程服务器,并传输文件
- 仿b站发现界面关键字的FlowLayout.
- Android 换肤功能实现
- 奇数偶数序列
- Java将数据导出到Excel
- LeetCode-226.Invert Binary Tree
- Telephony Call
- 数据库之mac下完全卸载mysql
- 欢迎使用CSDN-markdown编辑器
- 【Android studio 解决过的问题】 Not a PNG file,Some file crunching failed等一些问题解决方法
- 汉诺塔问题 Java 语言递归实现
- Fragment详解
- C语言中的找特殊数字问题
- 6.session flush 隔离级别:总结
- 1.一对多单向关联(班级对学生):Object,hbm
- 2.一对多单向关联(班级对学生):工具类