hibernate one to many 双向(不推荐单向)

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);

            }
        }
}

其他都同单向的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值