【问题标题】:Can not access field with sorm无法使用 sorm 访问字段
【发布时间】:2016-03-09 15:09:40
【问题描述】:

在 Scala 中,我有以下 scala 案例类:

case class Page(url: String)

object Page {
  implicit val personFormat = Json.format[Page]
}

在数据库中的编码如下:

object Db extends Instance(entities = Seq(Entity[Page]()), url="jdbc:h2:mem:test")

之后,我从数据库中检索一个实例,如下所示:

val page = Db.query[Page].whereEqual("id", pageId).fetch
val content: String = new URL(page.url).getContent().toString

但是,在我得到的最后一行。

value url is not a member of Stream[models.Page with sorm.Persisted]

为什么url 不是会员?

我为Page 创建了一个数据库表示。那不应该包括它的所有字段吗?

【问题讨论】:

    标签: scala playframework sorm


    【解决方案1】:

    应该是这样的

    package models
    
    import sorm._
    import play.api.libs.json.{JsValue, Writes, Json}
    
    case class Page(url: String)
    
    object Page {
      implicit val writes = Json.writes[Page]
      implicit val reads = Json.reads[Page]
    }
    
    object DB extends Instance(Set(Entity[Page]()), "jdbc:h2:mem:test")
    
    
    def pages = Action {
       val pages = DB.query[Page].fetch()
       Ok(Json.toJson(pages))
    }
    
    def addPage = Action(parse.json) { request =>
       val page = DB.save(request.body.as[Page])
       Ok(Json.toJson(page))
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2013-08-16
      • 1970-01-01
      • 2021-03-04
      • 2015-05-31
      相关资源
      最近更新 更多