gpt4 book ai didi

java - 本地运行的 hibernate 与服务器上运行的 hibernate 之间的同步

转载 作者:行者123 更新时间:2023-12-01 16:08:07 24 4
gpt4 key购买 nike

是否有一种简单的方法使用库来促进两个 Hibernate 实例的同步。一个在客户端本地运行,一个在通过 Web 服务公开的中央服务器上运行。

因此,客户端跟踪它所做的更改,并将它们推送到服务器。服务器确保客户端不会更新不同步的对象并存储客户端更改。

客户端还可以与服务器同步,以便它可以看到其他客户端所做的更改。

这个想法是客户端可以离线运行,无需访问服务器,并且仅在需要时才上线进行同步。

最佳答案

没有“神奇”的方法可以实现这一目标。你必须做这样的事情:

  • 为每个实体创建一个versionlastModified字段
  • 以序列化形式(对象序列化、xml、json)发送(通过 Web 服务、rmi 或您可以使用的任何方式)本地 hibernate 实体
  • 首先是实体 - 只需将它们保留在服务器上
  • 其次
  • 删除实体 - 您必须将它们的id版本存储在某处。如果服务器上的版本没有更改,请将其删除。如果有 - 自行决定是否删除它们
  • 更新了第三个​​实体 - 再次比较版本字段。如果服务器上没有任何修改,则保留新实体。如果有修改,有以下几种选择:
    • 报告合并冲突并且不合并它们
    • 用客户端版本覆盖服务器版本
    • 实现更复杂的合并机制,其中每个字段都有自己的版本,但这太复杂了

关于java - 本地运行的 hibernate 与服务器上运行的 hibernate 之间的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2242293/

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