1

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")

その後、次のようにデータベースから 1 つのインスタンスを取得します。

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。それはすべてのフィールドを含むべきではありませんか?

4

1 に答える 1

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))
}
于 2016-03-09T17:09:06.677 に答える