Hibernate入门BLOG[十、Hibernate对象关系多对多映射]

2014-11-24 08:22:27 · 作者: · 浏览: 1
[java]
多学生------多教师
1、 Java类文件:【省略set和get方法】
Student.java
public class Student {
private int id;
private String name;
private Set teas;
}
Teacher.java
public class Teacher {
private int id;
private String name;
private Set stus;
}
2、 Xml映射文件:

Student.hbm.xml:
< xml version="1.0" >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
" www.2cto.com">

package="cn.hibernate.model">















Teacher.hbm.xml
< xml version="1.0" >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
" www.2cto.com">

package="cn.hibernate.model">















3、 插入自动生成表操作:
//添加员工和IDcard的方法
static void AddTeacherAndStudent(){

Session s = null;
Transaction tx = null;
try{
Student stu = new Student();
Set ts = new HashSet();
Set ss = new HashSet();
s = HibernateUtil.getSession();
tx = s.beginTransaction();
Teacher t1 = new Teacher();
ts.add(t1);
Teacher t2 = new Teacher();
ts.add(t2);
Student s1 = new Student();
ss.add(s1);
Student s2 = new Student();
ss.add(s2);
//tea.setStus(sets);
//stu.setTeas(sett);
t1.setName("t1");
t2.setName("t2");
s1.setName("s1");
s2.setName("s2");
t1.setStus(ss);
s.save(t1);
s.save(t2);
s.save(s1);
s.save(s2);
tx.commit();
}catch(HibernateException e){
//判断事务有没有完全提交的判断方式
if(tx != null){
tx.rollback();
throw e;
}
}finally{
if(s != null){
s.close();
}
}
}
作者:zhang6622056