Hibernate一级缓存

第一级别的缓存是Session级别的缓存,是属于事务范围的缓存,由Hibernate管理,一般无需进行干预。

Session之间不能共享一级缓存,因它会伴随session的生命周期的创建和消毁。
一级缓存是实体级别的缓存,就是只有在查询对象级别的时候才使用,如果使用HQL和SQL是查询属性级别的,是不使用一级缓存的!切记!!!!

demo:

package edu.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import edu.po.Users;
import edu.utils.HibernateSessionFactory;

/**
 * Title: HibernateEhCacheTest.java
 * Description: Hibernate一级缓存测试
 * @author yh.zeng
 * @date 2017-7-4
 */
public class HibernateSessionCacheTest {

	static SessionFactory  sessionFactory = HibernateSessionFactory.getSessionFactory();
	
    public static void main(String args[]) {
    	
		Session session1 = sessionFactory.openSession();
		session1.beginTransaction();
		Users user1 = (Users)session1.get(Users.class, 6);  //查询出来的数据会放到一级缓存中
		System.out.println("用户名:" + user1.getUsername());
		Users user2 = (Users)session1.get(Users.class, 6);  //从一级缓存中取
		System.out.println("用户名:" + user2.getUsername());
		session1.getTransaction().commit();
		
		
		//由于一级缓存是session级别的缓存,所以session2是获取不到session1中的缓存数据
		Session session2 = sessionFactory.openSession();
		session2.beginTransaction();
		Users user3= (Users)session2.get(Users.class, 6);  //查询出来的数据会放到一级缓存中
		System.out.println("用户名:" + user3.getUsername());
		session2.getTransaction().commit();
		
		session1.close(); 
		session2.close(); 
		
	}
}


运行结果:

Hibernate: select users0_.id as id0_0_, users0_.version as version0_0_, users0_.username as username0_0_, users0_.password as password0_0_ from test.users users0_ where users0_.id=?
用户名:32323
用户名:32323
Hibernate: select users0_.id as id0_0_, users0_.version as version0_0_, users0_.username as username0_0_, users0_.password as password0_0_ from test.users users0_ where users0_.id=?
用户名:32323


 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值