【问题标题】:What is meant by mobility of entities?实体的流动性是什么意思?
【发布时间】:2014-06-20 17:28:37
【问题描述】:

Pro JPA 2 这本书不得不说移动实体

客户端/服务器和 Web 应用程序以及其他分布式架构 显然是连接中最流行的应用程序类型 世界。承认这一事实意味着承认 实体在网络中必须是可移动的。对象必须能够 从一个虚拟机移动到另一个虚拟机,然后再返回,并且 应用程序必须仍然可以使用。

离开持久层的对象称为分离的。关键 持久性模型的特点是能够改变分离 实体,然后在它们返回虚拟时重新连接它们 机器。分离模型提供了一种调和状态的方法 一个实体被重新连接,它处于它之前的状态 变得疏离。这允许实体更改离线进行,同时 面对并发仍然保持实体一致性。

有人可以帮我解码上面两段中的信息吗?为什么有些人需要实体在 JVM 之间移动?

【问题讨论】:

    标签: java jpa jpa-2.0


    【解决方案1】:

    简短的回答是可能有多个 JVM(多个移动设备、多个带有 JVM 的服务器或它们的任意组合)。

    如果我理解正确,请考虑保存游戏文件的示例。某人有一个网站帐户,并在该网站上存储了一个保存文件。但是这个人下载了游戏,这样他们就可以离线玩了。

    此时的保存文件成为“分离实体”。它“离线”更新,并在用户登录网站时重新附加。更新存储在服务器端的实体可能是自动的,或者可能会提示用户(是否要覆盖保存数据?向用户提供两个保存文件和时间戳)。

    其他示例可能包括

    • 来自移动设备的健康数据(即使超出无线范围也会更新)
    • 游戏数据
    • evernote/类似的同步服务
    • 备份/恢复服务

    【讨论】:

      【解决方案2】:

      有问题的两段描述了JPA 中分离对象的性质,并将它们与serializability 的概念相关联。

      一旦对象进入分离状态(即不再与entity manager 关联),它需要一种方法将自身重新连接到实时会话。如果对象想要将自己附加到实体管理器,这通常使用.merge() 操作来完成。

      他们说的意思

      对象必须能够从一台虚拟机移动到另一台虚拟机 然后再返回,并且必须仍然可供应用程序使用。

      如果您需要通过remote interface 将您的对象发送到另一个应用程序或不同的层,那么对象需要一种在应用程序之间移动并能够保留其状态。

      实现这一点的方法是序列化对象,然后通过网络发送它——当在另一端接收到它时,它会使用对象定义进行重构。然后对象需要将自己附加到实体管理器,以便它可以被持久化。这就是他们对分离对象的可移植性的意思。

      【讨论】:

        猜你喜欢
        • 2020-02-08
        • 2011-03-11
        • 2014-06-11
        • 2017-12-04
        • 1970-01-01
        • 2012-11-29
        • 1970-01-01
        • 1970-01-01
        • 2014-10-23
        相关资源
        最近更新 更多