Transaction tx =session.beginTransaction();
Customer cus =new Customer();
session.save(cus);
int id = cus.getId();
cus=null;
Customer cus2 =(Customer)session.load(Customer.class, id);
tx.commit();
session.close();
System.out.println(cus2.getId());我想问的是:
session.close();关闭之后为什么System.out.println(cus2.getId());还能得到值?
不是都关闭了吗?谢谢
Customer cus =new Customer();
session.save(cus);
int id = cus.getId();
cus=null;
Customer cus2 =(Customer)session.load(Customer.class, id);
tx.commit();
session.close();
System.out.println(cus2.getId());我想问的是:
session.close();关闭之后为什么System.out.println(cus2.getId());还能得到值?
不是都关闭了吗?谢谢
2。持久化状态:带有唯一标识列,并且数据与数据库中的数据根据唯一标识列保持同步。(HibernateSessionFactory关闭session后变为离线状态)
3。离线状态:HibernateSessionFactory关闭以后持久化类变为离线状态,虽然仍带有唯一标识列,但是已经不与数据库中数据保持同步。(update操作可将其从离线状态变为持久化状态)离线状态的对象仍然存在于系统内存中,长时间不用的话会被自动释放掉你这种情况是属于离线状态,在内存中对象还是存在的,所以说它的唯一标识列是可以取到的
(蛋黄车) 说的有道理,我采纳了,谢谢