【发布时间】:2015-12-06 02:34:02
【问题描述】:
我希望使用 Scala 2.9.x 和 Casbah 来实现我的 DAO 访问层。 鉴于我的实体是一个带参数的案例类:
case class Price (Id: Option[String], Price: Double, ItemName: String)
我的 BSON 文档如下所示:
{
"_id" : ObjectId("55dd1874b46f7178c8ddb737"),
"ItemName" : "Beet",
"Price" : "6"
}
我尝试创建一个属性
override var prices: List[Price] =
db("prices").find.toList.map(
o => Price(Some(o("_id").toString),
o("Price").toString.toDouble,
o.getAs[String]("ItemName").get ))
以下是我的主要担忧: 1. 映射字段看起来有点麻烦,应该有一些自动化。我知道我可以使用 import net.liftweb.json.{DefaultFormats, Serialization} 或任何其他的解析器,但我很确定应该有一些与 Casbah 更相关的东西。可能是其他一些 MongoDB Scala ORM。 2. 我不喜欢把它放到 var 中的想法。公开数据的更好方法是什么?我应该使用财产吗? 3. entites 的最佳实践是什么(如您所见,我使用带有参数的案例类,没有任何主体)
【问题讨论】: