Hibernate(十三)session缓存机制和三种对象状态

 

Hibernate(十三)session缓存机制和三种对象状态 

             

   hibernate向我们提供的主要的操纵数据库的接口,Session就是其中的一个,
它提供了基本的增,删,改,查方法.而且具有一个缓存机制,能够按照某个时间点,
按照缓存中的持久化对象属性的变化来更新数据库,着就是Session的缓存清理过程.
   在Hibernate中对象分为三个状态,临时,持久化,游离.
   如果我们希望Java里的一个对象一直存在,就必须有一个变量一直引用着这个对象.
当这个变量没了.对象也就被JVM回收了.
   这篇博客我们就带大家一起来看一下session的缓存机制,也就是hibernate的一级缓存,
还有hibernate三种对象状态的详细情况。 
   当Session的save()方法持久化一个Customer对象时,
Customer对象被加入到Session的缓存中,
以后即使应用程序中的引用变量不再引用Customer对象,
只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。

 

 

 

 

Hibernate(十三)session缓存机制和三种对象状态 

             

   hibernate向我们提供的主要的操纵数据库的接口,Session就是其中的一个,
它提供了基本的增,删,改,查方法.而且具有一个缓存机制,能够按照某个时间点,
按照缓存中的持久化对象属性的变化来更新数据库,着就是Session的缓存清理过程.
   在Hibernate中对象分为三个状态,临时,持久化,游离.
   如果我们希望Java里的一个对象一直存在,就必须有一个变量一直引用着这个对象.
当这个变量没了.对象也就被JVM回收了.
   这篇博客我们就带大家一起来看一下session的缓存机制,也就是hibernate的一级缓存,
还有hibernate三种对象状态的详细情况。 
   当Session的save()方法持久化一个Customer对象时,
Customer对象被加入到Session的缓存中,
以后即使应用程序中的引用变量不再引用Customer对象,
只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。

 

 

 

 

tx = session.beginTransaction();   
Customer c1=new Customer(“zhangsan",new HashSet());   
//Customer对象被持久化,并且加入到Session的缓存中   
session.save(c1);   
Long id=c1.getId();   
//c1变量不再引用Customer对象   
c1=null;   
//从Session缓存中读取Customer对象,使c2变量引用Customer对象   
Customer c2=(Customer)session.load(Customer.class,id);   
tx.commit();   
//关闭Session,清空缓存   
session.close();   
//访问Customer对象   
System.out.println(c2.getName());   
// c2变量不再引用Customer对象,此时Customer对象结束生命周期。   
c2=null; 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值