Загрузка нулевых значений с помощью CsvDataFileLoader в dbunit - PullRequest
3 голосов
/ 08 июня 2011

Мы используем CsvDataFileLoader для загрузки наших справочных данных следующим образом:

new InsertIdentityOperation(DatabaseOperation.CLEAN_INSERT)
            .execute(connection,
                    new CsvDataFileLoader().load("/sql/ReferenceData/"));

В любом случае можно поместить значения null в csv, который загружен в нашу базу данных.

Я не думаю, что есть, я бы предположил, что , null и NULL будут интерпретироваться как их строковые значения.

Кто-нибудь сумел это сделать или узнать оОбойти эту проблему?

1 Ответ

3 голосов
/ 08 июня 2011

CsvDataFileLoader использует CsvURLProducer для загрузки и анализа данных.

В этом классе в строке 145 для dbunit 2.4.8 вы видите следующее:

if (CsvDataSetWriter.NULL.equals(row[col])) {
    row[col] = null;
}

CsvDataSetWriter.NULL содержит строку "null", поэтому ваше предположение, что null будет интерпретироваться как строковое значение, кажется неверным, и вы должны использовать это в своем CSV.

Конечно, это означает, что вы не можете иметь строку "null" в своих полях, но я уверен, что это не часто требуется.

...