我写两个hibernate二级缓冲缓冲第一页。
通过调试,确实能缓冲,缓冲的时间设置的比较短,我们做的是高流量的平台。
现在有个问题是select count(*) 结果没有办法缓存.怎么能让总行数跟缓冲保持同步呢?
比如:我现在访问第一页,从缓冲取,但是总行数确从数据库取。能不能让总行数也从缓冲呢?
如果不是第一页,数据和总行数都要从数据库取。
说明一下:我的查询是sql+视图
用的全是纯SQL
用的hibernte的SQLQuery
我写两个hibernate二级缓冲缓冲第一页。
通过调试,确实能缓冲,缓冲的时间设置的比较短,我们做的是高流量的平台。
现在有个问题是select count(*) 结果没有办法缓存.怎么能让总行数跟缓冲保持同步呢?
比如:我现在访问第一页,从缓冲取,但是总行数确从数据库取。能不能让总行数也从缓冲呢?
如果不是第一页,数据和总行数都要从数据库取。
说明一下:我的查询是sql+视图
用的全是纯SQL
用的hibernte的SQLQuery
小弟不才,据小弟理解,Hibernate的缓存机制是对象缓存,比如你用Query.list从数据库中取了10个对象,那么就会把这10个对象缓存了,而不是把这个list缓存。所以如果你想缓存分页条目数,只能把这个条数存成对象。比如设置实体类Counter,其中有三个属性:id(在缓存中标示对象唯一性),table(标示要缓存的表名),count(条目数)。每次刷新或者query的时候,同时更新这个对象,你可以把这个类实例化到一个静态容器中,方便使用,这种模仿Hibernate缓存的方式很好用。你可以试试