Я думал об интересном сценарии и пытался найти лучшее и элегантное решение, чтобы избежать будущей проблемы. Я более чем уверен, что у кого-то есть отличная идея, чтобы это исправить.
Это.is сценарий:
В рамках Scala Play (на самом деле это действительно для любого языка) У меня есть простой пользователь класса, представляющий мою фактическую модель пользователя:
Case class user(name:String, age:Int){}
Теперь у меня естьмой неявный конвертер JSON, и я могу сохранить много пользователей в базе данных MongoDB (или любой другой базе данных).
Через некоторое время я решаю добавить новое свойство в свой класс пользователя, скажем:
Case class user(name:String, age:Int, surname:String){}
Теперь мое приложение обновлено, и если я его запусту, все будет работать нормально, пока я не попытаюсь загрузить старого пользователя, сохраненного со старой моделью.
В этом случае у меня, конечно,исключение, потому что данные из базы данных недействительны (на самом деле свойство фамилии отсутствует) и объект не может быть создан.
Мой вопрос: как лучше всего справиться с этим, особенно используя scala и нереляционную базу данных как MongoDB?
Спасибо всем.
ОБНОВЛЕНИЕ
предложение об использовании Option [String] является лучшим решением