Java EE-并行编辑,多用户,有什么想法吗?

Java EE-并行编辑,多用户,有什么想法吗?,java,jakarta-ee,concurrency,java-ee-6,Java,Jakarta Ee,Concurrency,Java Ee 6,我需要实现一些机制来防止用户在同一时间编辑相同的对象。以下是我的申请流程: 转到“列表”页面 选择要编辑表单数据表的行 单击编辑按钮(导航至“编辑”页面) 更改数据 单击“保存”或“取消”(导航回“列表”页面) 我希望我能在第三步检查。如果另一个用户正在编辑相同的记录(相同的id)并显示信息,例如“对不起,另一个用户正在编辑此记录” 我的想法是保留记录的用户和表名+ID的映射,他们目前正在编辑它们。为此,我将使用应用程序范围的bean(例如EJB3.1@Singleton)。你能指出这个解决方案

我需要实现一些机制来防止用户在同一时间编辑相同的对象。以下是我的申请流程:

  • 转到“列表”页面
  • 选择要编辑表单数据表的行
  • 单击编辑按钮(导航至“编辑”页面)
  • 更改数据
  • 单击“保存”或“取消”(导航回“列表”页面)
  • 我希望我能在第三步检查。如果另一个用户正在编辑相同的记录(相同的id)并显示信息,例如“对不起,另一个用户正在编辑此记录”

    我的想法是保留记录的用户和表名+ID的映射,他们目前正在编辑它们。为此,我将使用应用程序范围的bean(例如EJB3.1
    @Singleton
    )。你能指出这个解决方案的弱点吗?你能提出其他建议吗


    我使用JavaEE6、Seam3、GlassFish3和OracleDB11。我使用MyBatis,没有JPA框架。

    最好使用某种机制来接受识别良好的更改,并且在应用更改时,检测更改是否是在与现在不同的数据副本上启动的,并引发异常

    这种工作流程避免了恐惧,“我无法拯救公司,因为CA中有人开始改变关键记录,但后来去吃午饭了。”

    阅读本书的前几章。虽然您目前不关心数据版本控制,但冲突场景比旧的“库”系统更完整,而且考虑得更好,因为旧的“库”系统中,共享项只有一个人才能使用