这本书Pro JPA 2必须说明移动实体:
客户端/服务器和Web应用程序以及其他分布式体系结构 显然是连接中最受欢迎的应用程序类型 世界。承认这一事实意味着承认持久性 实体必须在网络中移动。对象必须能够 从一个虚拟机移动到另一个虚拟机然后再返回,然后 必须仍然可以被应用程序使用。
离开持久层的对象称为分离。关键 持久性模型的特性是能够改变分离 实体,然后在返回虚拟时重新附加它们 机。分离模型提供了一种协调状态的方法 被重新附加的实体,以及它所处的状态 变得超脱。这允许实体更改脱机,同时 面对并发性,仍然保持实体一致性。
有人可以帮我解码上面两段中的信息吗?为什么有人需要实体在JVM之间移动?
答案 0 :(得分:3)
简短的回答是,可能有多个JVM(多个移动设备,多个带有JVM的服务器或其任意组合)。
如果我理解正确,请考虑保存游戏文件的示例。有人拥有一个网站帐户,并在网站上存储了一个保存文件。但该人下载游戏以便他们可以离线播放。
此时的保存文件成为一个'分离的实体'。它已更新为“离线”,并在用户登录网站时重新附加。更新存储在服务器端的实体可能是自动的,或者可能会提示用户(是否要覆盖保存数据?向用户显示两个保存文件和时间戳)。
其他例子可能包括
答案 1 :(得分:0)
有问题的两个段落描述了JPA
中分离对象的性质,并将它们与serializability
的概念联系起来。
一旦对象进入分离状态(即不再与entity manager
关联),它需要一种方法将自己重新连接到实时会话。如果对象想要将自身附加到实体管理器,则通常使用.merge()
操作来完成。
当他们说
时他们的意思对象必须能够从一个虚拟机移动到另一个虚拟机 然后再返回,并且仍然可以被应用程序使用。
如果您要求将对象通过remote interface
之类的HTTP
发送到另一个应用程序或另一个层,则该对象需要一种在应用程序之间移动的方法能够保持其状态。
实现此目的的方法是序列化对象,然后通过线路发送 - 当在另一端接收它时,使用对象定义重建它。然后,对象需要将自身附加到实体管理器,以便可以保持它。这就是它们对分离对象的可移植性的意义。