Загрузка нулевых значений с помощью 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" в ваших областях, но я уверен, что это не часто требуется.

Другие вопросы по тегам