我正在研究 Java 上的企业应用程序。对于与数据库的交互,我使用 EJB。
数据库中有很多表,其中的值可以通过 web ui 进行编辑。目前,当用户进行一些更改时,这些更改会立即写入数据库。
但是在用户按下网页上的大“保存”按钮之前,我需要所有更改都处于待处理状态(不持久化)。同时要求所有更改都应跨用户会话保存,因此我不能只将它们存储在 bean 或客户端中。即使用户重新启动计算机或从其他设备访问我的应用程序,所有更改也应保留。所以我需要以某种方式坚持待处理的更改。
我想到的第一个解决方案是创建所有可编辑表的副本,并带有一些前缀,例如“tmp”。当用户更改某些内容时,我会将新值存储在“tmp_something”中。当用户最终按下“保存”时,我会将他的更改从“tmp_something”移动到主“something”表。为了在 tmp_ 表中分离来自不同用户的记录,所有这些都将有一个名为“user_id”的附加列。因此,对于所有用户,我都必须拥有一份我的表格。
实际上,我根本不喜欢这个解决方案!我将不得不重写很多代码,为每个新表创建新类......
我的问题是:有没有更好的方法来做我想做的事?