-1

我有一个应用程序服务器,它向客户端发送一组记录数据以响应搜索。在将数据发送到客户端之前,我的想法是让服务器将数据存储在会话变量中。

当用户选择并提交要编辑的记录时,客户端将整个记录发送到服务器。它更新数据库中的整个记录​​(以防其他用户在搜索后提交了更新)。

但是,我仍然需要捕获更改,以便正确存储审计信息。我认为最好根据用户看到和改变的内容来捕捉新旧价值。因此,我计划(深入)逐字段比较会话数据中的记录和客户端发送的更新记录。我有两个问题:

1)这种方法是否存在陷阱/问题?

2)如果不是,那么用于比较对象的好的 Java 实用程序/库是什么?

在此先感谢您的帮助。

4

2 回答 2

1

如果其他用途更改了记录中的任何字段,您最好拒绝更改。您可以提醒用户记录已更改并向他们显示新数据以再次执行更新(也许让他们更改的值可供他们使用)。

这样,如果另一个用户更改了与他们没有更改的字段相关的字段,您将不会更改彼此不再有意义的记录。

于 2012-12-13T20:02:22.343 回答
0

有多种方法:
如果由于某种原因您无法在服务器端和响应中标记已更改的字段,我将使用反射来比较类的所有字段,希望它们是原始对象或至少支持 equals()。但是,我会将其限制为原始类型和字符串。

于 2012-12-13T20:04:05.617 回答