手动修改数据库的值,hibernate查询还没有显示修改数据原因补充

当使用Hibernate进行数据库操作时,如果手动修改了数据库的值,但通过Hibernate查询并未立即看到更新,这是因为Hibernate的缓存机制。延迟加载导致已经加载的实体对象不会立即刷新数据库状态。要查看最新数据,需要强制刷新Hibernate session或关闭并重新打开session。
摘要由CSDN通过智能技术生成
 

    转问题: 
                 
昨天遇到一个问题,就是我手动改了数据库中的数据,但是我前台页面刷新的时候,不能实现数据的实时更新,还是数据库中原来修改的数据,我想应该是跟事务有关的,因为手动修改数据库的话,没有经过事务的处理,而从前台实现数据库更新的话,是经过事务处理的,不知道我这样理解对不对?希望大神帮忙分析下是什么原因,如果我要实现手动修改数据库,页面实时刷新的话,要怎么修改呢?用的是SSH+JPA+GlassFish服务器,先谢谢大家啦!



             hibernate是采取二级缓存的策略,第一是session级别的缓存,二是sessionfactory级别的缓存,并且默认二级缓存是打开的。读取数据的时候,Hibernate将第一次读取的内容放到了缓存中,若此时有别的应用修改了数据库中的数据,程序再次读取的时候,内容是从缓存中直接获取,先从一级缓存中读,若没有则从二级缓存中读取,则读取的数据为过时的数据。
所以你手动的去修改数据库里面的数据……

 

 

j解决方法
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值