Envers,withModifiedFlag 有一个默认名称列吗?

Envers, there is a default name column for withModifiedFlag?

我需要做一份报告,说明特定 table 的哪些字段已更改。所以我在 Envers 上找到了这个属性来标识那些字段:withModifiedFlag=true。我知道我可以只为我想要的字段或整个 table 做。

我是否必须使用 modifiedColumnName 设置实体的每个字段,或者这些列是否有默认名称?

我试图创建一个类型为布尔值和整数的列 field_name_modified,但没有成功。也许我错过了什么。

如果我们假设下面的实体示例

@Entity
@Audited(withModifiedFlag = true)
public class SomeEntity {
   private String customerName;
}

Hibernate Envers会使用字段名/属性来确定修改后的列名的前缀部分,然后追加默认的后缀值_MOD.

这意味着对于上面的示例实体,修改后的列名称是 customerName_MOD.

您可以指定自己的 modifiedColumnName 值,该值仍会附加后缀,但如果您希望使用默认行为,通常不需要使用该属性。

@Entity
@Audited(withModifiedFlag = true)
public class SomeEntity {
   @Audited(modifiedColumnName = "CUSTOMER_NAME")
   private String customerName;
}

以上示例将使用 CUSTOMER_NAME_MOD.

使用的数据类型应该是您的方言用于 布尔值 值。