Загрузка нулевых значений с помощью CsvDataFileLoader в dbunit
Мы используем CsvDataFileLoader
загрузить в наши справочные данные так:
new InsertIdentityOperation(DatabaseOperation.CLEAN_INSERT)
.execute(connection,
new CsvDataFileLoader().load("/sql/ReferenceData/"));
Есть ли в любом случае поставить null
значения в CSV, который загружается в нашу базу данных.
Я не думаю, что есть, я хотел бы представить, что ,
null
а также NULL
все будет интерпретироваться как их строковые значения.
Кто-нибудь сумел сделать это или знает обойти эту проблему?
1 ответ
CsvDataFileLoader
использования CsvURLProducer
загрузить и проанализировать данные.
В этом классе в строке 145 для dbunit 2.4.8 вы видите следующее:
if (CsvDataSetWriter.NULL.equals(row[col])) {
row[col] = null;
}
CsvDataSetWriter.NULL
содержит строку "null"
поэтому ваше предположение, что null будет интерпретироваться как строковое значение, кажется неверным, и вы должны использовать это в своем CSV.
Конечно, это означает, что вы не можете иметь строку "null"
в ваших областях, но я уверен, что это не часто требуется.