使用jdbc更新数据后,hibernate 缓存对象不更新,与数据库不一致,同一个session中

使用jdbc更新数据后,hibernate 缓存对象不更新,与数据库不一致,同一个session中,第1张

你第一次取到的对象是游离后的对象,里边的数据是持久在hibernate对应的类中的,但是数据的id是不会改变的,你写一个方法是通过id取得对象,这样就在一次取得持久化的对象了,比如用户修改资料,如果没有再一次持久化对象,得到的数据还是以前的数据,不知道你能明白吧

hibernate自身的缓存问题,查询数据时hibernate将查询出的数据保存起来,当你的第二次查询语句与上次的一样,hibernate就不会去数据库中查询,而是直接把保存的数据拿出来用,所以就导致了查询结果与数据库不一致的问题。解决办法是不用缓存

你所看到的数据库没反映并不是说数据库没有进行任何的更改

而是数据同步的问题

就像你同时打开两个超作数据库的窗口

在其中一个插入数据,不commit,在另外的窗口就查询不出来

但是在插入窗口是可以查询出来的

hibernate就像是你开的第二个窗口

当然楼上说的很对不修改数据库的数据是不会存在数据不同步的说法的。

这不是hibernate本身的问题哦

建议你看下数据库的知识哦

另外,站长团上有产品团购,便宜有保证


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9944785.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存