由一个应用程序实例完成的数据库更改未被另一个使用Hibernate的实例获取

时间:2010-09-15 12:02:41

标签: java hibernate session

我有一个可以读/写数据库表更改的应用程序。同一应用程序的另一个实例应该能够在数据库中看到更新的值。我正在使用hibernate来达到这个目的。如果我有2个应用程序实例正在运行,并且如果我是第一次从一个实例更改db,则可以从第二个看到更新的值。但是,第一个实例的任何进一步变化都没有反映在第二个实例中。请稍微说清楚。

2 个答案:

答案 0 :(得分:0)

这似乎是您的缓存设置中的错误。默认情况下,Hibernate假定它是唯一一个更改数据库的人。这允许它有效地缓存对象。如果多方可以更改数据库中的表,则必须关闭这些表/实例的缓存。

答案 1 :(得分:0)

您可以使用 hibernate.connection.autocommit = true

这将使hibernate立即将每次SQL更新提交到数据库,并且您应该能够看到来自其他应用程序的更改。

然而,我强烈反对你这样做。就像Aaron指出的那样,你应该只使用一个Hibernate SessionFactory和一个数据库。

如果确实需要多个应用程序同步,请考虑使用共享缓存,例如。宝石。