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

时间:2016-11-19 07:08:08

标签: java mysql spring hibernate

我是hibernate的新手。昨天开始探索自己。我很困惑,想知道这是否可以用Hibernate完成。

假设我有三个表格表A(其中包含名称,预算,出价,状态,日期列),表B( ID,预算,出价)和表C( id,status )。我希望所有数据都是一致的,即每当表B中发生更新时(假设预算新值应该反映在表A中)。同样适用于表C中也发生更新。在hibernate中实现这个目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

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

但是当你说这是你的主要要求时,你需要使用 JPA实体监听器(适用于所有ORM框架的Hibernate加上) postUpdate()postInsert()这样,只要有表B的更新/插入,就创建&在表A中再保留一个对象(数据库中的行)。

以下是JPA规范中的观点。供您参考。

  

在数据库更新操作到之后发生PostUpdate回调   实体数据。

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

答案 1 :(得分:-1)

你应该在表B中插入数据时使用触发器触发事件​​,这将反映表格表A中的数据