我已经使用 Hibernate 将几个 java 类(如 Customer、Assessment、Rating 等)映射到数据库。现在我正在考虑对持久数据的所有更改的历史模式。该应用程序是一个 Web 应用程序。在删除(或编辑)数据的情况下,另一个用户应该有可能看到更改并撤消它。由于更改超出了当前会话的范围,因此我不知道如何以命令模式之类的方式解决此问题,建议将其用于撤消功能。
对于单值编辑,类似这个问题的方法听起来不错。但是删除整个持久实体呢?最简单的方法是在该客户是否被删除时在表中创建一个标志。最复杂的方法是为存储已删除实体的每个类创建一个表。中间有什么吗?我怎样才能将这两个东西舒适地集成到 O/RM 系统(在我的情况下是 Hibernate)中,而不用过多地使用 SQL(由于可移植性我想避免)并且仍然具有足够的灵活性?
有最佳实践吗?