0

我正在研究 Java 上的企业应用程序。对于与数据库的交互,我使用 EJB。

数据库中有很多表,其中的值可以通过 web ui 进行编辑。目前,当用户进行一些更改时,这些更改会立即写入数据库。

但是在用户按下网页上的大“保存”按钮之前,我需要所有更改都处于待处理状态(不持久化)。同时要求所有更改都应跨用户会话保存,因此我不能只将它们存储在 bean 或客户端中。即使用户重新启动计算机或从其他设备访问我的应用程序,所有更改也应保留。所以我需要以某种方式坚持待处理的更改。

我想到的第一个解决方案是创建所有可编辑表的副本,并带有一些前缀,例如“tmp”。当用户更改某些内容时,我会将新值存储在“tmp_something”中。当用户最终按下“保存”时,我会将他的更改从“tmp_something”移动到主“something”表。为了在 tmp_ 表中分离来自不同用户的记录,所有这些都将有一个名为“user_id”的附加列。因此,对于所有用户,我都必须拥有一份我的表格。

实际上,我根本不喜欢这个解决方案!我将不得不重写很多代码,为每个新表创建新类......

我的问题是:有没有更好的方法来做我想做的事?

4

1 回答 1

0

1.你为什么不试试Multiton Pattern。使用包含 Singleton 的 Singleton BeanMap<Key, Object>将在应用程序范围内可用,对象将可以通过它们的唯一键访问,并且只有在您明确告诉它时才会持久化。我希望这有帮助

2.我对Java Transaction API不太熟悉。但我认为这可能是您可以查看的另一种选择。

问候

于 2013-01-31T11:11:07.183 回答