第一节:Hibernate 中四种对象状态                                    
删除状态:处于删除状态的Java 对象被称为删除对象。比如说session delete一个对象,这个对象就不处于session缓存中了, 已经从session的缓存中移出来了,只要提交事务的话,对应的数据库记录也会被删除。
游离状态:比如说session被关闭了,这里面的对象就变为游离状态了,游离状态和删除状态中的对象,如果不用的话,会被垃圾收集器回收。
几种状态之间的转化:
例子:

public class StudentTest {public static void main(String[] args) {SessionFactory sessionFactory = HibernateUtil.getSessionFactory();Session session = sessionFactory.openSession();    session.beginTransaction();    Class c1 = new Class();        //临时对象1c1.setName("08计本");Class c2 = new Class();        //临时对象2c2.setName("09计本");session.save(c1);        //持久化对象session.save(c2);        //持久化对象
        session.delete(c2);     //删除对象
        session.getTransaction().commit();    //提交事务session.close();                    //关闭session
        System.out.println(c1.getName());    //游离对象System.out.println(c2.getName());    //删除对象
    }}

View Code

解释:

c1、c2刚被new出来的时候是临时状态:

session.save(c1) session.save(c2),c1/c2就变成了持久化对象:

session被关闭之后,c1就是游离状态了,c1已经不在session缓存中了,当然呢,有一个对象引用依然指向着它,这个对象依然存在,只不过是变成游离对象了;
System.out.println(c1.getName())这个数据依然能取得到;
session.delete(c2)后,c2从session缓存中被移出,c2变为删除状态了,它指的删除是,session提交事务时会删除这个对象对应的数据库里面的一条记录;
System.out.println(c2.getName())还是能打印,只不过是删除状态;

console打印:

转载于:https://www.cnblogs.com/tenWood/p/7252993.html

Hibernate学习5—Hibernate操作对象相关推荐

  1. Hibernate学习之Hibernate注解总结

    Hibernate学习之Hibernate注解总结http://www.bieryun.com/3269.html 一.类级别的注解 @Entity name:表的名字(可选)一般表名和类名相同 必须 ...

  2. JavaScript学习笔记——underscore操作对象的方法

    var obj = {a:'aaa',b:'bbb',c:'ccc'}; 1._.keys(obj)获取对象的所有属性名称 2._.values(obj)获取对象的所有属性值 3._.extend(d ...

  3. Hibernate学习之hibernate状态

    hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就 ...

  4. Hibernate学习之hibernate.cfg.xml

    <?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hib ...

  5. hibernate学习五 Hibernate补充

    1  MiddleGenIDE可以生成映射类和映射文件. 2 转载于:https://www.cnblogs.com/liufei1983/p/8635468.html

  6. [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定...

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. hibernate 学习笔记-操作数据库

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration ...

  8. Hibernate学习总结【比较与Mybatis框架之间的区别】

    经过一周的Hibernate学习,我理解了作为以JPA为核心的持久层查询标准.JPA所涉及的思想为ORM(object relational mapping),它解释了为什么我们的实体关系要和数据库一 ...

  9. java hibernate详细_Java事务管理学习之Hibernate详细介绍

    hibernate是jdbc轻量级的封装,本身不具备事务管理的能力,在事物管理层面,一般是委托于底层的jdbc和jta来完成调度的.下面这篇文章主要给大家介绍了Java事务管理学习之Hibernate ...

最新文章

  1. python制作图形化界面_python图形化界面设计(wxpython)一布局管理
  2. Redis漏洞?阿里云被攻击!
  3. Gartner发布2021年重要战略科技趋势!
  4. Apache Spark 1.5新特性介绍
  5. 《TCP/IP详解》笔记----第二章 链路层
  6. rest api封装调用_如何从云功能调用外部REST API
  7. 20170907wdVBA_GetCellsContentToExcel
  8. 织梦编程run=php,dedecms织梦怎么用runphp='yes'运行php
  9. perl -p -i -e s/aaaaa/bbbbb/g ./*.sql
  10. 【CSWS2014 Main Conference】Some Posters
  11. r语言插补法_R语言用多重插补法估算相对风险
  12. SpringBoot整合JavaMail---发送邮件
  13. xshell 登陆日志_学习关于xshell查看日志
  14. Windows 10 安装Virtualbox 6.1.22详细教程
  15. matlab 盒形图怎么画,请问如何用sas画盒形图?程序是什么?谢谢!
  16. 大屏可视化解决方案:公安大数据平台建设
  17. 02 必备SQL和表关系及授权
  18. 战场管理系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 庄懂21课 塞博小人
  20. 半夜撸 flap bird

热门文章

  1. linux使用grep获取两个文件相同的行或不同的行
  2. 【OI】WERTYU UVa 10082
  3. javascript语言学习
  4. 字符串中子序列出现次数
  5. 常见的http状态码总结。
  6. 机器学习笔记(5) KNN算法
  7. [转] python运行时内存分析工具meliae
  8. 用js取1-100的随机数
  9. 解决“cannot open git-receive-pack”错误
  10. 原始套接字学习笔记(1)