Для нашего приложения Grails я написал метод, который позволяет загружать CSV-файл, полный контактов, и он будет анализировать файл и создавать контакты из данных. Я использовал свой тестовый файл (жестко запрограммировал, какие поля означают что), и он прекрасно работает.
Но, конечно, я не могу оставить жестко запрограммированные ссылки на поля, поэтому мой следующий шаг - показать пользователю экран, позволяющий сопоставить столбцы в его файле с полями нашей базы данных (столбцы A и B содержат имена , столбец C содержит электронную почту и т. д.).
Мой вопрос: Каков наилучший способ временно сохранить данные, которые я извлекаю в первой части, чтобы их можно было использовать в конце второй? Доменный класс может показаться логичным выбором, но я не нашел изящного способа сделать это вообще. Hibernate, похоже, не любит двумерные строковые массивы, и для его реализации в режиме OO потребовалось бы несколько классов доменов (ImportedCsv, CsvRow). Допустимо ли иметь несколько классов доменов верхнего уровня для такого небольшого и временного процесса?
Я немного новичок Грааля, поэтому я не уверен, что хакерское, а что грациозное. Что бы вы сделали?