Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用多个POJO更新数据库中的同一个表?_Java_Spring_Hibernate - Fatal编程技术网

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

Java 如何使用多个POJO更新数据库中的同一个表?,java,spring,hibernate,Java,Spring,Hibernate,我有两个类A和B的对象(都映射到同一个表,并且在我的hibernate配置中都有A。这两个对象中的标记也引用数据库中表的主键) 当用户使用我的应用程序时,在某个时间点对象A被更新。稍后更新对象B。有时,会发生异常,我认为这是因为我使用了这样的多个对象(下面打印的消息) org.hibernate.StaleObjectStateException:行被另一个事务更新或删除(或未保存的值映射不正确): 是否需要覆盖这些对象的equals方法(如?)当版本检查(乐观锁)失败时,通常会引发StaleO

我有两个类A和B的对象(都映射到同一个表,并且在我的hibernate配置中都有A。这两个对象中的标记也引用数据库中表的主键)

当用户使用我的应用程序时,在某个时间点对象A被更新。稍后更新对象B。有时,会发生异常,我认为这是因为我使用了这样的多个对象(下面打印的消息)

org.hibernate.StaleObjectStateException:行被另一个事务更新或删除(或未保存的值映射不正确):


是否需要覆盖这些对象的equals方法(如?)

当版本检查(乐观锁)失败时,通常会引发StaleObjectStateException。 这在并发环境中是很常见的。您可能需要适当的逻辑来处理此异常,例如为失败事务的用户提供一些有用的消息,如“您好,您要更新的数据刚刚由另一个用户更新”或“您正在尝试更新过期数据”等等。
总而言之,我认为您不需要对映射做任何事情。

可能是因为旧事务没有提交,flush()也很有用,因为没有关于会话何时执行JDBC调用的保证,只有它们的执行顺序-除了使用flush()之外.

A和B是两个不同的类还是同一类的两个实例?我们也编辑了这个问题。A和B是不同的班级