Ich bin an Frameworks wie Ruby on Rails oder Laravel in PHP, wo ich Modelle wie User
und wenn ich eine Abfrage an das Modell (zum Beispiel, um alle Benutzer in der Datenbank) mache ich etwas wie User::all()
.Spiel für Scala: Scala-Objekt als DAO
Ich bin neu für Scala und Slick zu spielen, und alle Projekte und Dokumentation, die ich bereits gesehen habe, verwenden ein DAO für den Zugriff auf die Datenbank über ein Modell. Ich habe gedacht, dass eine Scala object
ist, was ich brauche (oder zumindest bin ich daran gewöhnt), so dass ich DAO-Klassen nicht überall injizieren muss.
Mit einem DAO ich etwas wie folgt aus:
class Application @Inject()(adminDAO: AdminDAO) extends Controller {
def index = Action.async {
adminDAO.all() map { case admins =>
Ok(Json.toJson(admins))
}
}
}
Und mit einem Objekt (und keine Ahnung) erwarte ich, so etwas zu tun:
class Application extends Controller {
def index = Action.async {
Admin.all() map { case admins =>
Ok(Json.toJson(admins))
}
}
}
Der Versuch, die „DAO zu implementieren "object
Ich habe fast unmöglich gefunden, den Play Application
Kontext zu injizieren, ohne Play.current
zu verwenden, was veraltet ist. Diese Art von Abwertung und das Fehlen einer Möglichkeit, den Kontext zu injizieren (oder zumindest habe ich ihn nicht gefunden), klingt für mich seltsam. Ich fange an zu denken, dass ich es falsch denke. Ist es wirklich eine gute Idee, ein Scala object
als DAO zu verwenden?
Sie können sich auch [Anorm] (https://www.playframework.com/documentation/2.5.x/ScalaAnorm) ansehen. – cchantep