gpt4 book ai didi

java - Hibernate + Spring + session + 缓存

转载 作者:行者123 更新时间:2023-12-01 15:18:42 24 4
gpt4 key购买 nike

我们在 Java 应用程序中使用 Hibernate 和 Spring。我们发现,当一个 session 更新数据库中的某些内容时,其他 session 无法看到更新。例如,user1 从数据库获取帐户余额,然后 user2 增加余额,如果 user1 在更新之前再次获取该对象,他会看到帐户余额(似乎 session 使用其缓存中的值),但我们希望使用 new 获取更新后的对象账户余额。用户 1 在与用户 2 session 不同的所有 Activity 期间使用一个 session 。是否有任何配置强制从数据库获取更新的对象?或任何其他帮助?

最佳答案

这是设计使然(将 session 视为“工作单元”); session 应该在事务上隔离。这是 session 应该短暂存在的众多原因之一。在我看来,您可能正在使用长期存在的 session 。

但无论如何,您都可以使用 session.refresh( theAccount ); 强制“其他 session ”(在您的情况下为 user1)刷新其帐户状态;。 REFRESH 也是一个可级联操作,如果您在刷新帐户时也需要刷新依赖状态...

关于java - Hibernate + Spring + session + 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com