hibernate中对象的三种状态
1.瞬时状态
2.持久状态
3.脱管(游离)状态
区别方法:根据数据库有没有这个记录,以及会不会被Session对象管理来区别对象状态。
1.瞬时状态特点
数据库中没有这个对象的记录,与hibernate无关,不被Session对象管理。
例如User user =new User();这个new出来的user就处于瞬时状态。
2.持久状态特点
数据库中有这个对象的记录,与hibernate有关,对象改变hibernate知道,会被Session对象管理。
3.脱管状态特点
数据库中有这个对象的记录,与hibernate无关,不被Session对象管理。
4.update方法在对象处于游离状态的时候调用
5.save方法在对象处于瞬时状态调用
6.saveOrUpdate方法,不知道是瞬时状态还是脱管状态时候调用。