使用Play 2.x中包含超过22个字段的数据库

时间:2014-11-23 18:39:37

标签: json scala playframework playframework-2.3 play-reactivemongo

我正在尝试使用reactivemongo-extensions将应用程序从Rails / Mongoid迁移到Play / Reactivemongo。我的许多文档都有超过22个字段。 Play的JSON库似乎无法处理> 22个领域。在play / scala / reactivemongo中处理超过22个字段的数据库模式的首选模式是什么?

我觉得我必须缺少一个常见的设计模式,因为这似乎是一个非常常见的用例。一个不能用于中等大小的数据库表的Web框架不会非常有用,所以我认为我必须缺少一个明显的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以将平面json结构映射到分层对象结构。那么你不需要处理大型物体,你可以拥有超过22个字段。

case class SubObject(field4: String, field5:String)
case class MainObject(field1: String, field2: String, field3: String, 
subObject: SubObject, field6: String, field7: String)

implicit val mainObjectFormat: Format[MainObject] = (
    (__ \ "field1").format[String] and
    (__ \ "field2").format[String] and
    (__ \ "field3").format[String] and
    (
      (__ \ "field4").format[String] and
      (__ \ "field5").format[String]
    )(SubObject.apply, unlift(SubObject.unapply)) and
    (__ \ "field6").format[String] and
    (__ \ "field7").format[String]    
(MainObject.apply, unlift(MainObject.unapply))