我想知道人们使用什么策略来处理主从设置中的实体的创建和编辑。(我们的应用程序是一个支持互联网的桌面应用程序。)
以下是我们当前处理此问题的方式:在弹出窗口中为需要编辑的实体创建一个表单,我们为其提供对象的副本。当用户单击“取消”按钮时,我们关闭窗口并完全忽略该对象。当用户点击“确定”按钮时,通知主视图并接收编辑的实体。然后,它使用 originalEntity.copyFrom(modifiedEntity) 将修改后实体的属性复制到原始实体中。如果我们想创建一个新实体,我们将一个空实体传递给弹出窗口,然后用户可以编辑它,就像它是现有实体一样。主视图需要决定是将接收到的实体“插入”还是“更新”到它管理的集合中。
我对上述工作流程有一些疑问和意见:
- 谁应该处理实体副本的创建?(主或细节)
- 我们使用 copyFrom() 来防止必须替换集合中的实体,这可能导致引用中断。有一个更好的方法吗?(实现 copyFrom() 可能很棘手)
- 新实体收到 -1 的 id(服务器层/休眠使用它来区分插入或更新)。在保存实体之前按 id 查找(缓存)实体时,这可能会导致问题。我们应该为每个新实体使用一个临时的唯一 id 吗?
任何人都可以分享提示和技巧或经验吗?谢谢!
编辑:我知道这个问题没有绝对错误或正确的答案,所以我只是在寻找人们分享他们处理主要/细节情况的方式的想法和优缺点。