Hibernate中深入了解中状态
2017-12-12 18:54
344 查看
hibernate中的三种状态:瞬时状态(transisent),持久化状态(presistent),离线状态(detached)瞬时状态就是刚new出来,还没有保存到数据库中,session也没有这个对象持久化状态:对象就保存到数据库中,session中也保存这个对象(save(),upateOrSave())离线状态:对象保存在数据库中,session没有保存,(也就是session可能close,clear了)1:transient(瞬时状态转为持久化状态)代码案例:Session session = sessionFactory.getCurrentSession();//开启事物Transaction transaction = session.beginTransaction();User user = new User();//TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态User:"+session.contains(user)+"/n");//falseuser.setName("宁在一思进");user.setAddress("一代宗师");/*** 此时是在瞬时状态*/session.save(user);//TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态SAVE:"+session.contains(user)+"/n"); //true //事物提交 transaction.commit(); //TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态commit:"+session.contains(user)+"/n");//true //session 关闭 session.close(); }此时我们知道hibernate会发出一条insert的语句,执行完save方法后,该user对象就变成了持久化的对象了当执行了session.close()的时候就变成了离线状态此案例:只执行了一个sql:into T_User (address, name) values (?, ?)2Transisent中的创建Session session = sessionFactory.getCurrentSession();//开启事物Transaction transaction = session.beginTransaction();User user = new User();//TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态User:"+session.contains(user)+"/n");//fasleuser.setName("宁在一思进s");user.setAddress("一代宗师");session.save(user);//TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态SAVE:"+session.contains(user)+"/n");//trueuser.setName("莫在一思停s");//TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态user进行修改:"+session.contains(user)+"/n");//true//事物提交transaction.commit();//TODO 查看session中是否含有userSystem.out.println("session含有保存实体的状态commit:"+session.contains(user)+"/n"); //true//session 关闭session.close();只有一条sql生成 into T_User (address, name) values (?, ?)和transisent进行的测试并没有影响数据
相关文章推荐
- [转]深入hibernate的三种状态
- hibernate 三种状态深入分析
- 深入hibernate的三种状态
- 深入hibernate的三种状态
- 深入hibernate的三种状态(转)
- 深入了解Spring4整合Hibernate4时的No Session异常的原理与解决方案
- hibernate 三种状态深入分析
- 深入了解Hibernate包
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- hibernate 三种状态深入分析
- 深入hibernate的三种状态
- Android 进阶学习:Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 深入了解RecyclerView预布局状态(preLayout)
- 深入hibernate的三种状态
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 深入理解hibernate的三种状态
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 深入理解Hibernate的三种状态
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 深入了解View(五)—— 视图状态及重绘流程分析