many to one name指定了类定义的变量相同,”class”指定了关系属性的类型(也指定了与哪一个表关联), “column”属性是指定这个关联属性是按照”class_id”列的值,然后去查classes表。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="hibernate.belle.Student" table="t_student">
<id name="id" >
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="classes" column="classid"></many-to-one>
</class>
</hibernate-mapping>
package hibernate.belle;
import java.util.Set;
public class Student {
private int id;
private String name;
private Classes classes;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Classes getClasses() {
return classes;
}
public void setClasses(Classes classes) {
this.classes = classes;
}
}
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
import org.hibernate.Session;
import hibernate.belle.Classes;
import hibernate.belle.HibernateUtils;
import hibernate.belle.Student;
import junit.framework.TestCase;
public class OneToMany extends TestCase {
public void test1()
{
Session session=null;
try{
session=HibernateUtils.getSession();
session.beginTransaction();
Classes class1=new Classes();
class1.setName("whsz1");
Student stu1=new Student();
Student stu2=new Student();
stu1.setName("BELLE");
stu2.setName("Jack");
Set studentset=new HashSet();
studentset.add(stu1);
studentset.add(stu2);
session.save(stu1);
session.save(stu2);
class1.setStudentss(studentset);
session.save(class1);
session.beginTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
session.beginTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
public void testload()
{
Session session=null;
try{
session=HibernateUtils.getSession();
session.beginTransaction();
/*Classes class1=(Classes)session.load(Classes.class, "297e074a632b668d01632b668e820001") ;
Set Students=class1.getStudentss();
for(Iterator iter= Students.iterator();iter.hasNext();)
{
Student stu =(Student)iter.next();
System.out.println(stu.getName());
}
*/
Student stu=new Student();
stu=(Student)session.load(Student.class,1);
System.out.println((String)stu.getClasses().getId());
session.beginTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
session.beginTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
其他都同单向的