项目使用的是jboss jbpm开源工程,spring+tomcat+hibernate的架构
现在出现数据刷新和取值的问题
现象如下:
当用户1创建一条数据以后,用户2登录访问该数据,往往会出现用户2查询该数据(已经写入数据库中),多刷新几次页面就能出现
然后解决方案为
(1)根据bug的现象,可能是由于jsp页面或者是html调用了页面缓存,因此先禁止这些页面缓存
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0"> (2)在(1)的情况下,如果还出现数据的问题,应该是程序中查询的问题
(a)hibernate缓存
hibernate分一级缓存和二级缓存
(I)一级缓存是不可避免的,其实就是session的,可以对session进行操作,在每次查询数据的前面设置一下
//刷新一级缓存区的内容,使之与数据库数据保持同步
session.flush();
//将一级缓存中的所有持久化对象清除,释放其占用的内存资源
session.clear();
//获取一个新的数据库连接
session.reconnect();
(II)二级缓存是可以禁止的,在hibernate.cfg.xml中加入<property name="hibernate.cache.use_query_cache">false</property>
但是还是会出现按ID去查询数据的时候,出现数据为空的现象,但是数据库中已经有该数据了
现在都陷入迷茫中了,请教各位大侠了
现在出现数据刷新和取值的问题
现象如下:
当用户1创建一条数据以后,用户2登录访问该数据,往往会出现用户2查询该数据(已经写入数据库中),多刷新几次页面就能出现
然后解决方案为
(1)根据bug的现象,可能是由于jsp页面或者是html调用了页面缓存,因此先禁止这些页面缓存
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0"> (2)在(1)的情况下,如果还出现数据的问题,应该是程序中查询的问题
(a)hibernate缓存
hibernate分一级缓存和二级缓存
(I)一级缓存是不可避免的,其实就是session的,可以对session进行操作,在每次查询数据的前面设置一下
//刷新一级缓存区的内容,使之与数据库数据保持同步
session.flush();
//将一级缓存中的所有持久化对象清除,释放其占用的内存资源
session.clear();
//获取一个新的数据库连接
session.reconnect();
(II)二级缓存是可以禁止的,在hibernate.cfg.xml中加入<property name="hibernate.cache.use_query_cache">false</property>
但是还是会出现按ID去查询数据的时候,出现数据为空的现象,但是数据库中已经有该数据了
现在都陷入迷茫中了,请教各位大侠了
解决方案 »
- createCriteria()多条件查询并含Date类型
- 输入中文验证问题,求乱码解决。。急!!!!!!!!高分!
- 请教个hibernate的问题
- ERP开发成本比较 ASP.NET & JSP
- hibernate中createSQLQuery()和createQuery()有何区别
- 困扰多时了,请求高人告知!
- 诡异的问题!!"违反唯一性约束"
- java里生成xml好象很多用jdom,但如果要通过XSL转换成HTML那要用什么?
- tomcat4.0的问题!!十万火急!!!!!
- 我也在做一个项目。大型j2ee网站。没有需求,闭门造车。我也没有用过ejb.......
- jsp连接数据库
- 求《开发者突击:Struts 2核心技术与Java EE框架整合开发》第22章的源码
你是说查询的时候没有commit()吗