2016-12-02 5 views
0

Мне нужно сделать отчет, в котором указано, какие поля были изменены для конкретной таблицы. Поэтому я нашел этот атрибут в Envers для идентификации этих полей: withModifiedFlag=true. Я знал, что могу делать только для полей, которые я хочу, или для всей таблицы.Envers, есть столбец имени по умолчанию дляModifiedFlag?

Нужно ли устанавливать каждое поле моей сущности с помощью modifiedColumnName или есть имя по умолчанию для этих столбцов?

Я попытался создать столбец field_name_modified с типом boolean и с целым числом, но это не сработало. Может, я что-то пропустил.

ответ

1

Если мы предположим, что следующий пример Entity

@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.

Используемый тип данных должен использоваться независимо от вашего диалекта для boolean значений.

Смежные вопросы