第一节: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(); //临时对象1
c1.setName("08计本"); Class c2 = new Class(); //临时对象2
c2.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()); //删除对象
} }

解释:

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打印:
 

Hibernate学习5—Hibernate操作对象的更多相关文章

  1. Hibernate学习之——Hibernate环境搭建

    之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到 ...

  2. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  3. Hibernate学习0.Hibernate入门

    Hibernate是什么 面向java环境的对象/关系数据库映射工具. 1.开源的持久层框架. 2.ORM(Object/Relational Mapping)映射工具,建立面向对象的域模型和关系数据 ...

  4. hibernate学习之Hibernate API

    1. Hibernate Api分类 1)提供访问数据库的操作(如保存,更新,删除,查询)的接口.这些接口包括:Session, Transaction,,Query接口. 2)由于配置Hiberna ...

  5. Hibernate学习之Hibernate流程

    Hibernate的核心组件 在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.properties或hibernate. ...

  6. Hibernate学习二----------hibernate简介

    © 版权声明:本文为博主原创文章,转载请注明出处 1.hibernate.cfg.xml常用配置 - hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码 ...

  7. hibernate学习 六 Hibernate缓存

    缓存: 如果在集群环境下使用Hibernate时,(集群有节点A ,节点B) 当请求,发往A节点,A在数据库中修改了一条记录,然后节点B的缓存中如何实时的更新节点A修改的新数据          hi ...

  8. Hibernate学习5—Hibernate操作对象2

    第二节:Session 常用方法讲解 2)load和get()方法: 数据库中不存在与OID 对应的记录,Load()方法会抛出异常: load方法默认采用延迟加载,load出来的对象是一个代理类.开 ...

  9. Hibernate学习笔记三:对象关系映射(一对一,一对多,多对一,多对多)

    如需转载,请说明出处:http://www.cnblogs.com/gudu1/p/6895610.html Hibernate通过关系映射来表示数据库中表与表之间的关系,关系映射可以通过两种方式:配 ...

随机推荐

  1. C#笔记 -- 协变、逆变

    协变 理解:在泛型和委托中, 让使用某个泛型参数A的类型可以用一个使用由A派生的泛型参数B的类型实例化,(小=> 大)如 ​ // IEnumerable<Animal> 与 Lis ...

  2. eclipse背景设置什么颜色缓解眼睛疲劳之一

    Eclipse操作界面默认颜色为白色.对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,如果把颜色改成绿色的颜色就会缓解眼睛的疲劳. 设置方法如下: 1.打开window->Prefere ...

  3. 使用游标、存储过程、pivot 三种方法导入数据

    --使用游标循环 if (exists (select * from sys.objects where name = 'Base_RecordTend_Test')) drop proc Base_ ...

  4. 通过消费者和生产者的多线程程序,了解Java的wait()和notify()用法

    仓库类 public class Store { private int size = 0;//当前容量 private final int MAX = 10;//最大容量 //向仓库中增加货物 pu ...

  5. ping命令知识 Ping命令工作原理详解

    在网络应用中,ping网速与IP地址等都是非常常用的命令,但大家知道ping命令的工作原理吗?要知道这其中的奥秘,我们有必要来看看Ping命令的工作过程到底是怎么样的.下面介绍下ping命令的详细知识 ...

  6. 关于TCP/IP协议

    TCP的特点: TCP是面向连接的传输层协议 TCP的传输是可靠传输 TCP是全双工的通信 TCP的连接是点对点的传输 TCP和UDP的区别 tcp是面向连接的,两台主机的通信之前必须通过三次握手建立 ...

  7. 多网卡下,vlc发送IGMP组播报告包

    这两天测试IGMP遇到一个问题,环境描述如下: 我的vlc客户端安装在windows下,该PC有两张网卡,本地连接1接公司网,本地链接2 接路由器.wireshark坚挺本地链接2,以测试路由的IGM ...

  8. jenkins执行xctool命令出现command not found问题解决方法

    1.控制台执行 echo $PATH 把输出的这句话复制 2.jenkins->系统管理->系统设置 勾选Environment variables,添加键值,键:PATH,值:刚才复制的 ...

  9. flowable ProcessEngine和ProcessEngineConfiguration

    ProcessEngine是流程引擎,ProcessEngineConfiguration与前面四个引擎配置有些不同. ProcessEngineConfiguration增加了邮件服务和httpCl ...

  10. Kafka 单节点多Kafka Broker集群

    Kafka 单节点多Kafka Broker集群 接前一篇文章,今天搭建一下单节点多Kafka Broker集群环境. 配置与启动服务 由于是在一个节点上启动多个 Kafka Broker实例,所以我 ...