Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 在hibernate中更新多个表并确保数据一致性_Java_Mysql_Spring_Hibernate - Fatal编程技术网

Java 在hibernate中更新多个表并确保数据一致性

Java 在hibernate中更新多个表并确保数据一致性,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我刚开始冬眠,昨天就开始探索了。我被困住了,不知道是否可以用Hibernate来完成 假设我有三个表表A(表A有列名称、预算、投标、状态、日期),表B(id、预算、投标)和表C(id、状态)。我希望所有数据保持一致,即每当表B中出现更新时(比如说,对于预算,新值应反映在表A中)。表C中的更新也同样适用。在hibernate中实现这一点的最佳方法是什么?首先,我不建议跨多个表进行数据复制,因为这很难支持和维护 但当您声明这是您的主要需求时,您需要使用JPA实体侦听器(在所有ORM框架中与Hiber

我刚开始冬眠,昨天就开始探索了。我被困住了,不知道是否可以用Hibernate来完成


假设我有三个表表A(表A有列名称、预算、投标、状态、日期),表B(id、预算、投标)和表C(id、状态)。我希望所有数据保持一致,即每当表B中出现更新时(比如说,对于预算,新值应反映在表A中)。表C中的更新也同样适用。在hibernate中实现这一点的最佳方法是什么?

首先,我不建议跨多个表进行数据复制,因为这很难支持和维护

但当您声明这是您的主要需求时,您需要使用JPA实体侦听器(在所有ORM框架中与Hibernate plus配合使用)
postUpdate()
postInsert()
,以便在对表B进行更新/插入时,再创建并持久化一个对象(数据库中的行)进入表A

以下是JPA规范中的要点,供您参考

在执行数据库更新操作之后,将发生PostUpdate回调 实体数据


您可以找到一个简单的示例

您应该在表B中插入数据时使用触发触发事件,该事件将反映表a中的数据

为什么您的表未规范化?为什么在多个表中有相同的数据?尝试规范化这些表,它会处理好的。重复数据可能是一大难题。这是一项要求。我们想在单独的表中跟踪状态、预算、出价的变化,这些表是独立的,是吗?它们没有任何关系主键用于IGHKEY?这些表是独立的,没有外键约束。当用户询问如何使用hibernate时,不应通过提供类似补丁的解决方案来鼓励糟糕的数据库设计。