方法可返回没有加载实体数据的代理类实例,而get方法永远返回有实体数据的对象。(对于load和get方法返回类型:好多书中都说:“get方法永远 只返回实体类”,实际上并不正确,get方法如果在session缓存中找到了该id对应的对象,如果刚好该对象前面是被代理过的,如被load方法使用 过,或者...
分类:
Web程序 时间:
2015-04-17 22:13:20
阅读次数:
135
最主要区别在于,检索策略不同。无论get和load,首先都会去session缓存中看有没有现成的数据。没有的话,get会采用立即检索策略。即:将对象从数据库检索出来并返回,不使用代理类。load的话,如果lazy="true",会采用延迟加载策略。即:返回一个仅包含有ID主键的代理类对象,当调用对象...
分类:
Web程序 时间:
2015-04-07 19:07:50
阅读次数:
161
1.缓存简述 Hibernate缓存分两级缓存 一级session缓存,就是常说的一级缓存;二级应用缓存(二级缓存); 一级缓存,一级缓存依赖于session,在一个session中就是一个缓存,当session失效时,缓存消失。 publ...
分类:
Web程序 时间:
2015-04-02 11:57:56
阅读次数:
265
hibernate提供的一级缓存hibernate是一个线程对应一个session,一个线程可以看成一个用户。也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和线程绑定了。hibernate一级缓存生命周期很短,和session生命周期一样,一级缓存也称sess...
分类:
Web程序 时间:
2015-04-01 21:47:43
阅读次数:
235
Hibernate的缓存介于Hibernate应用和数据库之间,缓存中存放了数据库数据的复制,缓存主要用来减少直接访问数据库的频率,从而提高应用的性能。Hibernate采用二级缓存机制,如果再第一级缓存中没有查询到相应的数据,还可以到第二级缓存内查询,如果在第二级缓存内也没有找到该数据,那么就只好查询数据库。第一级缓存是Session的缓存,第二级缓存是SessionFactory的外置缓存。
...
分类:
Web程序 时间:
2015-03-31 22:15:36
阅读次数:
206
引自:http://www.blogjava.net/frostwood/archive/2010/01/06/308465.htmlHibernate提供了三个级别的缓存策略:Session缓存(基本的事务级缓存),Query Cache(查询缓存),Seond-Level Cache(二级缓存)...
分类:
Web程序 时间:
2015-03-12 00:39:00
阅读次数:
129
本文讲述HIbernate中一级、二级缓存的概念以及如何使用。一、大纲2.什么是一级缓存3.一级缓存示例展示4.二级缓存以及示例展示5.总结二、什么是一级缓存在hibernate中所谓的一级缓存就是session对象,但是一级缓存对提高性能的作用性并不是很大,其session主要的目的是管理实体..
分类:
Web程序 时间:
2015-03-04 19:22:52
阅读次数:
207
1、立即检索 (查询) 立即检索就是在调用get方法的时候,会直接向数据库发出sql语句查询,并将结果放到session缓存中,在查询的时候会将级联的对象一对查出,(发出多条sql语句); 明显的缺点就是占用内存,同时会将应用不需要用到级联的对象也查询出来,影响效率! 最好是将频繁用到的关联...
分类:
Web程序 时间:
2015-02-09 15:40:24
阅读次数:
136
load()与get()方法的区别:
load() 方法查询数据时会先从session缓存(一级缓存)中查找,如果没有找到则会创建代理类,该代理类仅仅初始化了
OID属性,当第一次访问其他属性值时, 则会依次从二级缓存-->数据库查找,直到找到数据,最后将所有属性值赋给代理类。
而get()方法则会直接按照一级缓存-->二级缓存 -->数据库的顺序查找。get()返回的不一定是实体,也...
分类:
其他好文 时间:
2015-02-03 17:20:21
阅读次数:
156
一、Hibernate 一级缓存的概念: 一级缓存生命周期很短与 session 生命周期一致,所以一级缓存也叫 session 级缓存或事务级缓存。位于缓存中的对象处于持久化状态,它和表中的相关记录对应,session 能够在某些时间点,按照缓存中持久化对象的属性变化来同步数据库中表的记录,这一过...
分类:
Web程序 时间:
2015-02-02 14:03:02
阅读次数:
235