我有一个简单的客户端(JavaSE、Swing)-服务器(Java EE、EJB、JPA)架构。
我想为我的服务器端实体创建一个客户端“缓存”。例如,如果我下载一个实体,我会将其存储在嵌入式 Derby DB(带有客户端 JPA)中,因此下次需要时,客户端可以首先在自己的数据库中查找并从那里检索实体以节省网络通信。 (简单复制)
我的问题始于实体的 ID:在客户端和服务器端使用相同的 ID 听起来确实很糟糕,因此我应该存储实体的客户端 ID 和服务器端 ID 的一些映射。 问题仍然存在,因为我有很多实体(15~20..),以及它们之间的关联。
将正确的 ID-s 放置在服务器通信(更新、合并)或客户端上,可以促进一些递归的、可能是反射的代码,即一个持续跟踪映射的 ID-s 的引擎:
- 如果我修改了客户端实体,并且想要合并到服务器,则在发送到服务器之前,它应该替换实体集中的客户端 ID(在各种 @OneToMany 外键中)
- 从服务器端来看,问题是反之亦然
有人知道这样的框架吗,特别是对于 JPA 用户来说?或者您有一些实现技巧吗? //如果可能的话,我想在应用程序持久性级别解决这个问题
提前致谢, 安德拉斯升
最佳答案
什么不使用相同的id?看来如果你不尝试不同的问题,你就不会有任何问题......
关于java - JPA 客户端-服务器复制/同步框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7886976/