【发布时间】:2011-10-25 09:02:32
【问题描述】:
我有一个简单的客户端(JavaSE、Swing)-服务器(Java EE、EJB、JPA)架构。
我想为我的服务器端实体创建一个客户端“缓存”。例如,如果我下载一个实体,我会将其存储在 Embedded Derby DB(使用客户端 JPA)中,因此下次需要时,客户端可以先在自己的 DB 中查找并从那里检索实体以节省网络通信。 (简单复制)
我的问题始于实体的 ID:在客户端和服务器端使用相同的 ID 听起来确实很糟糕,因此我应该为客户端 ID 和实体的服务器端 ID 存储一些映射。 问题仍然存在,因为我有很多实体(15~20..),以及它们之间的关联。
将正确的 ID-s 放置在服务器通信(更新、合并)或客户端会促进具有一些递归和反射代码,一个引擎,它会持续跟踪映射的 ID-s:
- 如果我修改了客户端实体,并希望合并到服务器,在发送到服务器之前,它应该替换实体集中的客户端 ID(在各种 @OneToMany 外键中)
- 从服务器端来看,反之亦然
有谁知道这样的框架,尤其是对于 JPA 用户?或者你有一些实施技巧吗? // 如果可能,我想在应用程序持久性级别解决这个问题
提前致谢, 安德拉斯升
【问题讨论】:
标签: java jakarta-ee jpa persistence derby