实体对象的三种状态与改变

1、瞬时态(new的对象)-----调用 save()方法,存储数据,瞬时态变成持久态

     User user = new User();

2、持久态(数据库中有对应记录,并且与session相关联)

     Configuration cfg = new Configuration();
     SessionFactory sf = cfg.configure().buildSessionFactory();
     Session s = sf.openSession();
     Transaction ts = s.beginTransaction();
     User user = new User();
     user.setUserName("root"+new Date());
     user.setPassword("123");
     s.save(user);
     user.setPassword("new123");
     ts.commit();
     s.close();

3、脱管态(数据库中存在对应记录,但是不与session相关联) ----update()方法,更新记录,没有记录则报null异常

如果对于不知道是save()方法还是利用update()方法,可以采用saveOrUpdate(),merge(),但是merge()后是脱管状态

猜你喜欢

转载自forlab.iteye.com/blog/1917624
今日推荐