java - 如何使用多个 POJO 更新数据库中的同一个表?

标签 java spring hibernate

我有两个 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/

相关文章:

java - 在Hibernate中持久化后获取数据库生成的ID

java - Hibernate 期望序列而不是 postgres 的表

java - 未找到 HikariCP LoggerFactory 类定义

java - GWT CompositeEditor - 动态切换编辑器未正确添加到链中

java - 无法获取 Docker 镜像

javascript - 将 javascript 响应变量传递给 spring Controller 函数

java - 日期验证从 android 中的当前日期起不到 18 年

java - 尝试获取正确的月份以显示最高和最低值

spring - Apache Tiles 退休了。备择方案?

spring - 如何使用 Spring 和 Hibernate 在项目中通过 PowerMockito 模拟 SessionFactory 或 Session?