我需要做一个报告,说明特定表格的哪些字段已被更改。所以我在Envers上找到了这个属性来识别这些字段:withModifiedFlag=true
。我知道我可以只针对我想要的字段或整个表格。
我是否必须使用modifiedColumnName
设置实体的每个字段,或者这些列是否有默认名称?
我尝试使用boolean类型和整数创建一个列field_name_modified
,但它不起作用。也许我错过了什么。
答案 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 。
使用的数据类型应该是您的方言用于布尔值的任何内容。