Próbuję dowiedzieć się, Slick (Scala funkcjonalny model relacyjny). Zacząłem budować prototyp w Slick 3.0.0, ale oczywiście ... większość dokumentacji jest albo nieaktualna, albo niekompletna.Slick/Scala: Co to jest Rep [Bind] i jak zmienić go w wartość?
Udało mi się dojść do punktu, w którym mogę utworzyć schemat i zwrócić obiekt z bazy danych.
Problem polega na tym, że otrzymuję zwrot "Rep [Bind]", a nie obiekt, który powinienem odzyskać. Nie wiem, co zrobić z tą wartością. Na przykład, jeśli spróbuję czegoś takiego jak rep.countDistinct.result, dostaję awarię.
Oto krótkie streszczenie kodu ... niektórzy usunięte dla zwięzłość:
class UserModel(tag: Tag) extends Table[User](tag, "app_dat_user_t") {
def id = column[Long]("n_user_id", O.PrimaryKey)
def created = column[Long]("d_timestamp_created")
def * = (id.?, created) <> (User.tupled, User.unapply)
}
case class User(id: Option[Long], created: Long)
val users = TableQuery[UserModel]
(users.schema).create
db.run(users += User(Option(1), 2))
println("ID is ... " + users.map(_.id)) // prints "Rep[Bind]"... huh?
val users = for (user <- users) yield user
println(users.map(_.id).toString) // Also prints "Rep[Bind]"...
nie mogę znaleźć sposobu na „rozpakowanie” obiekt Rep i nie mogę znaleźć żadnego wyraźnego wyjaśnienia co to jest i jak z niego korzystać.
tylko trochę więcej informacji: Większość dokumentacji mam znalazłem sugestie, że mogę zrobić coś takiego jak "users.foreach (println)", ale users.foreach jest niezdefiniowany. – Zac