2016-12-02 1 views
0

Ich muss einen Bericht machen, der sagt, welche Felder von einer bestimmten Tabelle geändert worden sind. Also habe ich dieses Attribut in Envers gefunden, um diese Felder zu identifizieren: withModifiedFlag=true. Ich weiß, dass ich nur für die Felder, die ich will, oder für den ganzen Tisch tun kann.Envers, gibt es eine Standardnamenspalte für withModifiedFlag?

Muss ich jedes Feld meiner Entität mit der modifiedColumnName oder gibt es einen Standardnamen für diese Spalten?

Ich habe versucht, eine Spalte field_name_modified mit dem Typ boolean und mit Integer zu erstellen, aber es hat nicht funktioniert. Vielleicht habe ich etwas verpasst.

Antwort

1

Wenn wir die folgende Einheit Beispiel

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

Hibernate Envers wird, um den Namen des Feldes/Eigenschaft annehmen, das Präfix Teil der modifizierten Spaltennamen zu bestimmen und dann den Standardwert Suffix _MOD anhängen.

Das bedeutet, dass der Name der modifizierten Spalte für die obige Beispieleinheit customerName_MOD lautet.

Sie können Ihre eigenen modifiedColumnName Wert angeben, die immer noch das Suffix angehängt wird, aber das Attribut ist in der Regel nicht erforderlich, wenn Sie das Standardverhalten verwenden möchten.

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

Das würde obiges Beispiel CUSTOMER_NAME_MOD verwenden.

Der verwendete Datentyp sollte unabhängig von Ihrem Dialekt für boolean Werte verwendet werden.

Verwandte Themen