我遇到了一个奇怪的场景——我有两个 hibernate 实例(比如 A 和 B)由两个独立的 JVM 进程运行——请不要问为什么,但我必须问。当 A 提交(trans.commit())并写入 MySql 中的表 T 时,当 B 从 T 读取相同的记录时,它会得到陈旧的数据。
A 和 B 每个都有一个 session 对象——sessionA 和 sessionB。因此,没有调用新的 openSession()。
谁能告诉我为什么会这样?
最佳答案
关于其他选择:如果您使用 Hibernate 作为 ORM(Object Relational Mapping) 工具,那么您可以在 hibernate 文档中查看 LockOptions。 您可以对插入然后从数据库检索的实体使用 LockMode.Upgrade。
总结:在 hibernate 状态下查看LockOptions并在这种情况下应用LockMode Upgrade。
如果您仍然遇到任何问题,请发布。 希望它能为您解决问题。
谢谢。
关于java - 通过两个不同的 JVM 进程异常分隔 Hibernate 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14907407/