首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hibernate session的load步骤和get方法

2012-06-26 
hibernate session的load方法和get方法public void test() {Teacher teacher1new Teacher()Teacher teac

hibernate session的load方法和get方法

public void test() {                   Teacher teacher1=new Teacher();         Teacher teacher2=new Teacher();                   //有异常的load         /*         Session session=sessionFactory.getCurrentSession();         session.beginTransaction();         teacher1=(Teacher)session.load(Teacher.class,9);         session.getTransaction().commit();         System.out.println(teacher1.getName());         */                  //没有异常的load         Session session=sessionFactory.getCurrentSession();         session.beginTransaction();         teacher1=(Teacher)session.load(Teacher.class,9);         //这里重点,因为调用getName(),所以load方法才去读取数据库         System.out.println(teacher1.getName());          session.getTransaction().commit();         System.out.println(teacher1.getName());                              session=sessionFactory.getCurrentSession();         session.beginTransaction();         teacher2=(Teacher)session.get(Teacher.class,10);         session.getTransaction().commit();         System.out.println(teacher2.getName());                 }

?

?总结:

  1 get方法是直接访问了数据库,当没有相应数据则返回null
  2 load方法是延迟加载,返回的是一个代理,当有调用到对象的相关方法时才访问数据库,如果没有相应数据则异常
  3 load方法得到的对象必须在session关闭前使用到,不然再访问就异常,因为它的不访问数据库了

最后记住:
? 1) load延迟加载在session关闭必须先使用,不然后面就不能使用
? 2) 当没有相应数据时,get返回null,load则异常

热点排行