Session常用方法

  参考资料: Hibernate缓存机制和四种状态

  1. save()方法 将一个临时对象转化为持久化对象
  2. load()方法 VS get()方法
    1. 都是根据OID从数据库中加载一个持久化对象
    2. 区别1: 假如数据库中不存在与OID对应的记录,load方法会抛出异常,而get()方法返回null;
    3. 区别2: load方法默认采用延迟加载策略, get方法采用立即检索策略
  3. update()方法: 将一个游离对象转化为持久化对象
  4. saveOrUpdate()方法: 包含save()和 update() 方法
  5. merge()方法: 合并对象
    1.   取得两次相同对象时,update 会异常,merge()成功执行
    2.  1     public void testMerge(){
       2         Session session = sessionFactory.openSession();    //生成一个新的session
       3         session.beginTransaction();    //开启事物
       4         
       5         Student stu = (Student) session.get(Student.class, Integer.valueOf(1));
       6         stu.setName("lisi");
       7         
       8         session.save(stu);
       9         
      10         session.getTransaction().commit();    //提交事务
      11         session.close();                    //关闭session
      12         
      13         Session session1 = sessionFactory.openSession();    //生成一个新的session
      14         session1.beginTransaction();    //开启事物
      15         Student stu1 = (Student) session1.get(Student.class, Integer.valueOf(1));
      16         stu.setName("lisi1");
      17 //        session1.update(stu);        //异常
      18         session1.merge(stu);        //成功执行
      19         
      20         session1.getTransaction().commit();    //提交事务
      21         session1.close();                    //关闭session
      22     }
  6. delete()方法: 删除对象
posted @ 2014-11-28 16:52  四点水这  阅读(217)  评论(0编辑  收藏  举报