Java 在hibernate中更新多个表并确保数据一致性
我刚开始冬眠,昨天就开始探索了。我被困住了,不知道是否可以用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
假设我有三个表表A(表A有列名称、预算、投标、状态、日期),表B(id、预算、投标)和表C(id、状态)。我希望所有数据保持一致,即每当表B中出现更新时(比如说,对于预算,新值应反映在表A中)。表C中的更新也同样适用。在hibernate中实现这一点的最佳方法是什么?首先,我不建议跨多个表进行数据复制,因为这很难支持和维护 但当您声明这是您的主要需求时,您需要使用JPA实体侦听器(在所有ORM框架中与Hibernate plus配合使用)
postUpdate()
和postInsert()
,以便在对表B进行更新/插入时,再创建并持久化一个对象(数据库中的行)进入表A
以下是JPA规范中的要点,供您参考
在执行数据库更新操作之后,将发生PostUpdate回调
实体数据
您可以找到一个简单的示例您应该在表B中插入数据时使用触发触发事件,该事件将反映表a中的数据为什么您的表未规范化?为什么在多个表中有相同的数据?尝试规范化这些表,它会处理好的。重复数据可能是一大难题。这是一项要求。我们想在单独的表中跟踪状态、预算、出价的变化,这些表是独立的,是吗?它们没有任何关系主键用于IGHKEY?这些表是独立的,没有外键约束。当用户询问如何使用hibernate时,不应通过提供类似补丁的解决方案来鼓励糟糕的数据库设计。