【发布时间】:2014-10-27 13:24:11
【问题描述】:
我有一个广泛使用编辑器框架的应用程序。现在我要添加一个新功能:如果用户编辑实体,我想记录所做的更改并将它们存储在单独的数据存储实体中。这需要知道字段是否已更改、字段名称以及更改为的值。
这是我想要实现的:
- 应用调用edit(bean);
- 用户进行更改,调用 flush() 并将数据发送回服务器。
- 在服务器处理程序中,来自 bean 的更改被发送到
processChanges(List<String> paths),然后创建并存储“field foo”更改为“bar”的记录,依此类推。 - 实体已保存,覆盖现有实体。
我使用 GWTP,目前使用 RPC 命令模式。我已经阅读了一些关于 RequestFactory 的内容,据我所知,它的主要好处之一是它只将称为“deltas”的更改字段发送回服务器以最小化有效负载,所以我想知道使用 RequestFactory 是否会更适合我的应用?
抱歉 - 我一直在阅读有关编辑器框架和 RequestFactory 的 GWT 文档和 Javadocs,但我仍然很困惑。 RequestFactoryEditorDriver.getPaths() 似乎这可能是我需要的,但非常感谢任何建议或指针。
我可能会在客户端观察变化,但这似乎是个坏主意。
【问题讨论】:
-
我没有看到 100% 这与 GWT 编辑器或 GWT 有什么关系。听起来更像是对数据库/数据存储问题的重组,例如保存实体的历史记录。
-
我想你误解了我的问题。当我致电
EditorDriver.flush()时,重组我的架构将如何帮助我找出哪些字段的内容发生了变化?我正在重新保存同一个实体,而不是每次都创建一个新副本,因此需要单独记录更改。
标签: gwt requestfactory gwtp gwt-editors