【发布时间】:2018-11-28 19:20:45
【问题描述】:
我正在考虑一个有趣的场景,并试图找出最佳和优雅的解决方案以避免未来出现问题,我非常确定这里有人有一个很好的想法来解决这个问题。
这是场景:
在 scala 播放框架中(实际上这对任何 oo 语言都有效)我有一个简单的类用户代表我的实际用户模型:
Case class user(name:String, age:Int){}
现在我有了我的 JSON 隐式转换器,我可以在 MongoDB 数据库(或任何数据库)中保存许多用户。
一段时间后,我决定向我的用户类添加一个新属性,比如说:
Case class user(name:String, age:Int, surname:String){}
现在我的应用程序已更新,如果我运行它,一切都会正常运行,直到我尝试加载使用旧模型保存的旧用户。
在这种情况下,我当然有一个例外,导致数据库中的数据无效(实际上缺少 surname 属性)并且无法创建对象。
我的问题是,处理这个问题的最佳方法是什么,尤其是使用 scala 和非关系型数据库作为 MongoDB?
谢谢大家。
更新
建议使用 Option[String] 是最好的解决方案
【问题讨论】:
标签: mongodb scala oop playframework