Ich möchte Zeilen nach Spalten filtern, die ich in meiner Domain-Klasse nicht sehen möchte. So zum Beispiel sieht meine Tabelle wie folgt aus:Slick 3.0. Wie man Slick-Tupel-Tabelle meiner Domain-Klasse zuordnen kann?
class UserTable(tag: Tag) extends Table[(Int, String, Boolean)](tag, "users") {
def id = column[Int]("id")
def name = column[String]("name")
def active = column[Boolean]("active")
override def * = (id, name, active)
}
Und meine Domain-Klasse wie folgt aus:
case class User(id: Int, name: String)
Aus irgendeinem Grund will ich nicht active
in meiner User
Klasse angemeldet haben. Aber ich möchte Abfragen haben, die User
als Ergebnis produziert. Und ich möchte keine Zukunftspläne abbilden. Wie folgt:
val activeUsers: Future[Seq[User]] = db.run(query.filter(_.active === true) /* how to convert it here? */)
So konnte mein Problem auf zwei Arten gelöst werden. Definieren Sie UserTable
wie UserTable[User]
und noch irgendwie filtern Sie es durch active
Spalte. Oder definieren Sie UserTable
, wie es jetzt definiert ist, und konvertieren Sie Tupel in User
Klasse. Ich bin mir fast sicher, dass die erste nicht möglich ist, aber die zweite sollte möglich sein. Wie macht man das?