多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 持久化类的三种状态 1. 瞬时态:当前持久化类没有OID,没有被session操作管理. 2. 持久态:当前持久化类 有OID,有被session操作管理. 3. 脱管态(离线态):当前持久化类,有OID,没有被session操作管理. ~~~ Customer customer = new Customer(); //瞬时态,没有OID,也没有被session管理 customer.setCust_name("jack"); session.save(customer); //持久态:OID被uuid设置了,而且也被session管理 System.out.println(customer.getCust_id()); //脱管态有OID,但是没有被session管理 ~~~ ## 三种状态的转换 ### 瞬时态 获得 : ~~~ Customer customer = new Customer(); ~~~ 转持久: ``` save(); saveOrUpdate(); ``` 转脱管: ``` 设置个OID就行了 ``` ### 持久态 获得: ``` 只要查询出来的都是持久态对象. ``` 转脱管 ``` close(); ``` 转瞬时 ``` deleted(); ``` ### 脱管态 获得: ``` Customer customer = new Customer(); customer.setCust_id(1L); ``` 转持久: ``` save(); saveOrUpdate(); ``` 转瞬时: ``` customer.setCust_id(null); ``` ## 注意: 只要涉及查询返回的就是持久化类的持久态对象. 如果持久态对象修改完属性,不需要执行更新操作,会自动更新 数据库. ~~~ Customer customer = session.get(Customer.class, 3L); customer.setCust_name("米兰"); //不需要调用session.update(),会自动保存到数据库中 ~~~