最新回答 / weibo_倍儿帅QAQ_0347065
工具类是通过openSession获得session的。视频中引用的是同一个session,所以相当于是同一个请求,于是执行一条sql语句,后来老师再次使用工具类获得session,所以就有两条session,有不同的sessionID,执行main函数相当于是两个不同的请求,所以执行两条sql语句,缓存的实质就是看是不是用的用一个session,个人理解,望指正0.0
2017-07-07
最新回答 / shesolo
<ehcache> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" /></ehcache>这个是默认的,不用改也不会出现你的那个问题
2017-03-09
query.list();
不使用缓存,直接查询。
query.iterate();
先在缓存中查询,没有查询到就再去数据库查询。
对于Query接口的list()方法与iterate()方法来说,都可以实现获取查询的对象,但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了),而iterator()方法所返回的对象中仅包含了主键值(标识符),只有当你对iterator中的对象进行操作时,hibernate才会向数据库再次发送SQL语句来获取该对象的属性值。
不使用缓存,直接查询。
query.iterate();
先在缓存中查询,没有查询到就再去数据库查询。
对于Query接口的list()方法与iterate()方法来说,都可以实现获取查询的对象,但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了),而iterator()方法所返回的对象中仅包含了主键值(标识符),只有当你对iterator中的对象进行操作时,hibernate才会向数据库再次发送SQL语句来获取该对象的属性值。
2017-03-07
最新回答 / 逗逗1830109
hibernate的缓存策略1.什么是缓存?:并不是指计算机的内存或者CPU的一二级缓存缓存是指为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能的一种策略2.为什么使用缓存?...
2017-02-21