DBUnit настаивает на вставке нулевого значения для неопределенных значений, но я хочу использовать значение по умолчанию БД
Я имею эту проблему с DBUnit вызывая ошибку вставки SQL. Скажем, у меня есть это в моем файле dbunit testdata.xml:
<myschema.mytable id="1" value1="blah" value2="foo" />
У меня есть таблица, как это (postgres)
myschema.mytable имеет идентификатор, значение1, значение2 и поле даты, скажем "lastmodified". Последний измененный столбец - это отметка времени с модификаторами "not null default now()"
Похоже, что dbunit читает метаданные таблицы и пытается вставить пустые значения для любого столбца, который не указан в моем файле testdata.xml. Таким образом, приведенный выше xml приводит к вставке следующим образом:
insert into myschema.mytable (id,value1,value2,lastmodified) values (1,'blah','foo',null)
При запуске тестов (плагин dbunit/maven) я получаю сообщение об ошибке:
Error executing database operation: REFRESH: org.postgresql.util.PSQLException: ERROR: null value in column "lastmodified" violates not-null constraint
Есть ли какой-нибудь способ указать DBUnit НЕ ВСТАВЛЯТЬ пустые значения в поля, которые я не указываю?
Изменить: Использование dbunit 2.5.3, junit 4.12, postgressql драйвер 9.4.1208
1 ответ
Используйте функцию dbUnit "исключить столбец": как исключить некоторые столбцы таблицы во время выполнения?