如何使用 Hibernate Envers 选择审计字段?
How to choose fields for auditing with Hibernate Envers?
我在 Spring 引导应用程序中使用 Hibernate Envers 和 Spring 数据。例如,我有一个基数 class
@MappedSuperclass
class BaseEntity {
@Id
private Long id;
// some base fields
// getter and setter
}
和class
@Entity
class Entity extends BaseEntity {
// some fields
// getters and setters
}
我只需要审核已完成的操作及其时间戳。例如,当我创建新实体或更新现有实体对象时,我希望审计 table 包含以下信息:实体 ID、操作时间、操作类型 。
如果我只是将@Audited 添加到实体 class 那么实体的所有字段都将被审计。
您可以使用像这样的 @NotAudited 注释排除某些字段被审计...
@Audited
@Entity
class User {
...
@NotAudited
private String phoneNumber;
}
编辑: 您可以控制审核架构 table 并通过创建自定义修订实体 [=14] 来准确决定为每个修订记录哪些信息=]
本质上你定义了一个CustomRevisionEntity
和CustomRevisionLister
我在 Spring 引导应用程序中使用 Hibernate Envers 和 Spring 数据。例如,我有一个基数 class
@MappedSuperclass
class BaseEntity {
@Id
private Long id;
// some base fields
// getter and setter
}
和class
@Entity
class Entity extends BaseEntity {
// some fields
// getters and setters
}
我只需要审核已完成的操作及其时间戳。例如,当我创建新实体或更新现有实体对象时,我希望审计 table 包含以下信息:实体 ID、操作时间、操作类型 。 如果我只是将@Audited 添加到实体 class 那么实体的所有字段都将被审计。
您可以使用像这样的 @NotAudited 注释排除某些字段被审计...
@Audited
@Entity
class User {
...
@NotAudited
private String phoneNumber;
}
编辑: 您可以控制审核架构 table 并通过创建自定义修订实体 [=14] 来准确决定为每个修订记录哪些信息=]
本质上你定义了一个CustomRevisionEntity
和CustomRevisionLister