我有User表和User_Hist表。它们是相同的结构:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="number" class="value1" id="value1" path="commandName.object.field1" />
</form>
<form>
<input type="number" class="value1" id="value1" path="commandName.object.field2" />
</form>
<input type="text" disabled="disabled" id="result" />
当我创建新用户时,数据将保存在两个表中,如果删除了User表上的一行,我们将通过User_Hist的数据备份更新此行。 目前,我使用JPA存储到db和BeanUtils.copyProperties来克隆数据。
User (User_ID, Name, Address)
User_Hist (User_ID, Name, Address)
在Spring上,我们有没有办法帮助在多表上存储数据库? (不使用db上的触发器)
答案 0 :(得分:0)
我不知道有什么方法可以将相同的数据存储在两个表中,但不包括触发器,尽管您可以使用一个java对象将数据存储在不同的表中,这样就可以避免克隆或覆盖bean属性对不同的对象。
答案 1 :(得分:0)
您可以将EntityListener添加到您的用户实体 只需用
注释即可class SelectInst
{
public:
int x;
};
void *operator new(size_t Size, unsigned Us) {
^^^^^^^^^^^ 3 is passed here
^^^^^^^^^^^ allocation size requested
return ... // Allocates enough space for Size and for Us uses
}
SelectInst *Create() {
return new(3) SelectInst();
}
int main()
{
auto ptr = Create();
return 0;
}
并在@EntityListeners(UserListener.class)
方法中添加UserHist保存。
见the example。另请阅读this以访问EntityManager