Когда объект удаляется, Envers также создает запись аудита для этой операции.По умолчанию данные объекта не собираются при создании записи аудита, поэтому по сути Envers пытается вставить строку в таблицу аудита, которая содержит Первичный ключ , Номер редакции и Тип редакции .Все остальные столбцы будут вставлены с нулевыми значениями.
Так как в вашей таблице аудита был указан столбец успеха, заданный как NOT NULL
, удаление вызывает исключение.
Помимо первичного ключа, revision,и столбцы типа ревизии в таблице аудита, по этой причине все остальные столбцы должны быть созданы со спецификацией NOT NULL
.Если вы можете воспроизвести генерирующие таблицы Envers, которые этого не придерживаются, сообщите об этом как об ошибке, прикрепив модель проблемы к проблеме.
Параметр конфигурации, org.hibernate.envers.store_data_at_delete
при значении true
сообщитПозволяет захватывать не только первичный ключ объекта, редакцию и тип редакции, но и все проверенные столбцы.Это не включено по умолчанию, потому что, как правило, предыдущая версия поддерживает то же самое состояние, поэтому его копирование действительно не требуется;однако некоторые пользователи предпочитают иметь его.