2016-12-02 58 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

使用的數據類型應該適用於您的方言用於布爾值值。