2016-12-02 55 views
0

我需要做一个报告,说明哪些字段已被更改的特定表。所以我在Envers上找到这个属性来识别这些字段:withModifiedFlag=true。我知道我可以为我想要的场地或整个桌子做点事情。Envers,withModifiedFlag有一个默认名称列?

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

我试图创建一个类型为布尔值和整数的列field_name_modified,但它不起作用。也许我错过了什么。

回答

1

如果我们假设

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

休眠Envers将使用字段/属性的名称,以确定经修改的列名的前缀部分,然后追加默认后缀值_MOD以下实体的例子。

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

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

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

上面的例子将使用CUSTOMER_NAME_MOD

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