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

时间:2016-12-02 11:13:52

标签: java hibernate hibernate-envers

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

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

我尝试使用boolean类型和整数创建一个列field_name_modified,但它不起作用。也许我错过了什么。

1 个答案:

答案 0 :(得分:1)

如果我们假设以下实体示例

@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

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