【发布时间】:2018-06-04 19:44:56
【问题描述】:
在我的公司,我是一名 java 开发人员,我们使用 hibernate orm。 出于与数据相关的目的,数据架构师希望为每个数据库上的每个表提供审计列( CREATE_DATE、CREATED_BY、UPDATE_DATE、UPDATED_BY )。这似乎有点奇怪,因为我们在应用业务中不使用这些字段。
对于我们的 java 应用程序,我想,我们有两个选择:
- 在每个休眠 dao 对象上使用这些审计字段创建一个基类。
- 定义表触发器以更新这些列。
我应该更喜欢哪一个,为什么?还有其他建议吗?
【问题讨论】:
-
我对数据架构师给您的选择感到非常惊讶。审计列应该由触发器设置和更新,而不是依赖于代码来管理它们。它们不是供您的代码使用,甚至不知道它们用于审核行更新以进行取证分析(如果需要)。
-
看看 Hibernate Envers:hibernate.org/orm/envers
-
@ErwinBolwidt 我知道 envers。您是否建议使用 envers 的选项 1?
-
我建议您使用已经存在的东西,而不是自己构建它。但是“我应该更喜欢哪一个,为什么?还有其他建议吗?”是“主要基于意见。过于广泛。”。正如您现在所问的那样,这对于 SO 格式来说不是一个好问题。请阅读help center 在这里提出好的问题。
标签: java hibernate orm triggers audit