你update的时候,应该没有数据的更新吧

解决方案 »

  1.   

    你用session去load的,那么customer就被放在session的内存中,而你关闭session又用session2去操作它,那么在session2的内存区域内应该是找不到的
      

  2.   

    你这样做是不太好的 你这样试试
    Configuration   cfg   =   new   Configuration(); 
    SessionFactory   sf=cfg.   configure().buildSessionFactory(); 
    Session   session=sf.openSession(); 
      
    Transaction   tx=session.beginTransaction(); 
    customer=(Customer)session.load(Customer.class,”1”);     //也可以尝试把load改为get试试
    customer.getOrder().getName();//   *******这里可以 
    session.close(); 
      
    Session   session2=sf.openSession(); 
    Transaction   tx2=session2.beginTransaction(); 
    //session2.update(customer);  //开始改Customer pojo = new Cutomer();
    pojo.setName(customer.getOrder().getName();)
    session2.merge();//这样试试 customer.getOrder().getName();//   *******这句会could   not   initialize   proxy   -   no  
    tx.commit(); 
    session.close();
      

  3.   

    没有.因为当你UPDATE的时候他会检查你的内存看是否修改.如果修改了他就UPDATE数据库 没有修改他就不会修改数据库.hibernate3.0的3.0以后的就不知道了