我需要实现一些机制来防止用户同时编辑相同的对象。这是我的申请流程:
- 转到“列表”页面
- 选择行以编辑表单数据表
- 单击编辑按钮(导航到“编辑”页面)
- 更改数据
- 单击“保存”或“取消”(导航回“列表”页面)
我希望我可以在第 3 步检查。如果另一个用户正在编辑相同的记录(相同的 id)并显示信息,例如“对不起,另一个用户正在编辑这个”。
我的想法是保留他们当前正在编辑的已登录用户和表名 + id 的地图。为此,我将使用应用程序范围的 bean(例如 EJB 3.1 @Singleton
)。你能指出这个解决方案的弱点吗?你能提出其他建议吗?
我使用 Java EE 6、Seam3、Glassfish 3 和 Oracle DB 11。我使用 MyBatis,没有 JPA 框架。