您的位置:首页 > 其它

Hibernate中onetomany实例一

2011-05-25 23:40 323 查看
1:第一个实例

class类:

public class Classes {

private int id;
private String name;

private Set<Student> students;

public Set<Student> getStudents() {
return students;
}

public void setStudents(Set<Student> students) {
this.students = students;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

Classes.hbm.xml的内容为:

<hibernate-mapping package="com.bjsxt.hibernate">
<class name="Classes" table="t_classes">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
<set name="students">
<key column="classid"/>
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>

类Student:

public class Student {

private int id;
private String name;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
Student.hbm.xml的内容为:

<hibernate-mapping >
<class name="com.bjsxt.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
</class>
</hibernate-mapping>

测试程序为:

public void testSave1(){ //测试保存的程序
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();

Student student1 = new Student(); //声明一个Student 对象
student1.setName("10");
session.save(student1);

Student student2 = new Student(); //再声明一个Student对象
student2.setName("11");
session.save(student2);

Set students = new HashSet();
students.add(student1);
students.add(student2);

Classes classes = new Classes();
classes.setName("尚学堂");
classes.setStudents(students);

//可以正确保存
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,4);
System.out.println("classes.name="+classes.getName());
Set<Student> students = classes.getStudents();
for(Iterator iter = (Iterator) 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: