我有两个 A 类和 B 类对象(两者都映射到同一个表,并且在我的 hibernate 配置中都有 a。这两个对象中的标记也引用数据库中表的主键。)。
当用户使用我的应用程序时,对象 A 在某个时间点会更新。稍后对象 B 被更新。有时,会发生异常,我认为这是因为我使用了像这样的多个对象(下面打印的消息)
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
我是否需要重写这些对象的 equals 方法(如 explained in this question ?)
最佳答案
版本检查(乐观锁)失败时通常会抛出StaleObjectStateException。 在并发环境中这是很常见的事情。您可能需要适当的逻辑来处理此异常,例如向失败事务的用户提供一些有用的消息,例如“嗨,您打算更新的数据刚刚由另一个用户更新”或“您正在尝试更新过时的数据” “巴拉巴拉。 总而言之,我认为您不需要对映射做任何事情。
关于java - 如何使用多个 POJO 更新数据库中的同一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14640993/