Hibernate延迟加载

<?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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.ts.vo.Teacher" table="teacher" catalog="ts">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="identity" />
        </id>
        <property name="teachername" type="java.lang.String">
            <column name="teachername" length="32" not-null="true" />
        </property>
        <set name="students" inverse="true" lazy="true" cascade="all">
            <key>
                <column name="teacher_id" />
            </key>
            <one-to-many class="com.ts.vo.Student" />
        </set>
    </class>
</hibernate-mapping>

 

<?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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.ts.vo.Student" table="student" catalog="ts">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="identity" />
        </id>
        <many-to-one name="teacher" class="com.ts.vo.Teacher" fetch="select">
            <column name="teacher_id" />
        </many-to-one>
        <property name="studentname" type="java.lang.String">
            <column name="studentname" length="32" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

测试:

public class TeacherStudentTest {
 private Session session=null ;
 private Transaction tx=null ;
 
 public Session getSession(){
  SessionFactory factory=new Configuration().configure().buildSessionFactory() ;
  session=factory.openSession() ;
  return session ;
 }
 public List getTeacherList()
 {
  session=getSession() ;
  tx=session.beginTransaction() ;
  String hql="from Teacher" ;
  Query query=session.createQuery(hql) ;
  List list=query.list() ;
  for(Object obj : list){
   Teacher teacher=(Teacher)obj ;
   if(!Hibernate.isInitialized(teacher.getStudents()))
    Hibernate.initialize(teacher.getStudents()) ;
  }
  return list;
 }
 public static void main(String[] args)
 {
  TeacherStudentTest ts=new TeacherStudentTest() ;
  List list=ts.getTeacherList() ;
  for(Object obj : list)
  {
   Teacher teacher=(Teacher)obj ;
   System.out.println("教师姓名:--->" + teacher.getTeachername()) ;
   for(Object obj2 : teacher.getStudents())
   {
    Student student=(Student)obj2 ;
    System.out.println("学生姓名:--->" + student.getStudentname()) ;
   }
   System.out.println("=======================") ;
  }
 }

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值