代码之家  ›  专栏  ›  技术社区  ›  Simone

应用程序外部的数据库更新

  •  1
  • Simone  · 技术社区  · 14 年前

    如果另一个进程更新数据库,那么我的NHibernate驱动的应用程序将不同步,这是正确的吗?我几乎在使用非延迟更新。

    如果有什么不同的话,我的目标数据库是mysql 5.0。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Diego Mijelshon    14 年前

    如果没有更多的上下文,没有一个简单的方法来回答这个问题。

    你在考虑什么类型的应用程序(网络、桌面、其他)?

    你认为什么会不同步?

    如果您的桌面应用程序有一个打开的窗口,打开的会话加载了数据,并且您在其他地方更改了相同的实体,那么数据库当然会不同步,但是您可以使用刷新来更新这些实体。

    如果使用NH二级缓存,并在其他地方修改缓存的实体,则缓存内容将不同步,但仍可以使用刷新或缓存控制方法直接从数据库更新。

    在所有情况下,NH都通过使用版本属性来支持乐观并发;这些属性防止修改不同步的实体。

        2
  •  1
  •   Roger Johansson    14 年前

    是的,当前会话中的对象将不同步,这与获取数据集/数据表和其他进程更新相同数据时不同步的方式相同。