java - 使用 JPA/hibernate 在数据库表中手动维护实体行版本/历史记录

标签 java database hibernate jpa

我不知道在哪里问这个问题或如何问。基本上我需要的是我有几个实体类,如果我从数据库表的角度考虑,每一行都会有一个特定的列,如“S0”,它将指示应用程序的当前状态。我的应用程序将基于“获取数据”默认情况下,来自所有表的 S0'(默认情况下,history='S0')。

当我需要历史记录时,我会获取历史记录列='S0'的所有行,并插入值='S1'的新行,其其他属性完全相同(除了在插入时更改的标识)。下次像“S2”之类的。 S0 行将保持不变。

我的应用程序应该可以选择通过选择存档数据来加载/填充自身。就像加载具有历史记录的应用程序 S1

我如何使用 JPA+Hibernate 来管理这个问题。在 JDBC+JSP 中,我曾经在每个表上都有一个列历史记录并手动处理:复制并插入全部。但我认为这是一种危险,而且不是一个好的做法。

请给我一些建议/帮助来帮助我。

最佳答案

你检查过恩弗斯了吗? http://www.jboss.org/envers

关于java - 使用 JPA/hibernate 在数据库表中手动维护实体行版本/历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511288/

相关文章:

java - 参数 'pathString' 为空

java - 从 SAXparser 类解析字符串时出现 Long.parseLong 错误 (Java)

java - 适用于各种平台的合适且兼容的数据库

php - 与数据库和对象交互的最佳方式

java - 如何修复运行 gradle 的 docker 容器中的 Unicode 字符解析?

java - Hibernate 在绑定(bind)到 Java 时间戳对象时忽略数据库时区信息

java - 将枢轴作为数组中最后一个元素的快速排序分析

java - Jenkins java.lang.OutOfMemoryError : GC overhead limit exceeded

mysql - 在 select 语句中使用存储过程的结果 [MySql]

java - Liquibase Hibernate 插件不工作