gpt4 book ai didi

java - 过时的 Hibernate createSQLQuery

转载 作者:行者123 更新时间:2023-11-29 07:04:27 25 4
gpt4 key购买 nike

我有一个项目正在从一个共享的 mysql 数据库中读取数据。有一个来自 session 的大帐户对象(太大,但那是另一回事)。

问题是这个对象有一个由同一台机器上的不同进程借记的余额字段。因此,用户看到的余额为 20 英镑,但实际上他们的余额可能要低得多。应用程序无法知道此值何时更改。

所以我想我会做的是每次我被要求从数据库中获取值时检查 mysql,但它是通过面孔,所以当它询问时它会询问很多次,所以我进行检查以便如果它还没问几秒,就在刚刚的balance上做一个createSQLquery,看看有没有不同,如果有,就重新加载对象。

所以我做了一些事情:

sess.createSQLQuery("SELECT Balance from Account").list();

并获取值。有时它会显示正确的余额,但通常它会显示之前读取的余额,其中 mysql 命令行客户端显示的是真实值。

是否有清除此值的方法,或更新对象的其他方法?我最终想删除 hibernate,因为它给我带来了很多它解决的问题,但目前,我只需要余额来显示基于数据库的值。

最佳答案

您可以尝试在 hibernate session 中重新加载该对象。 http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/Session.html

sess.refresh(yourReadObject);

也许清除 session

sess.clear();

也可以提供帮助。然而,它可能有更多的副作用。

关于java - 过时的 Hibernate createSQLQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179267/

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