Slick Zeile nach ID auswählen

8

Die Auswahl einer einzelnen Zeile nach ID sollte eine einfache Sache sein, aber ich habe ein wenig Mühe herauszufinden, wie ich das auf mein Objekt abbilden kann.

Ich fand diese Frage , die auf der Suche ist Das Gleiche, aber die gegebene Antwort funktioniert nicht für mich.

Momentan habe ich das, das funktioniert, aber es scheint nicht so elegant wie es sein sollte.

%Vor%

Ich habe das Gefühl, eine Liste zu bekommen, dann ist headOption nur sperrig und unnötig. Ich muss etwas verpassen.

Wenn es hilft, hier ist mehr von meinem Kategoriecode

%Vor%

Gibt es einen einfacheren Weg, um einfach eine Option [T] von einer ID mit Slick zu bekommen?

Lösung Es gab ein Treiberproblem. Ich konnte nicht .firstOption verwenden, aber auf mysql jdbc 5.1.25 aktualisiert und alles ist gut!

    
kingdamian42 18.07.2013, 13:31
quelle

3 Antworten

9

Sie können dies tun:

%Vor%

Wenn Sie diese Abfrage häufig verwenden, sollten Sie QueryTemplate :

berücksichtigen

val byId = t.createFinderBy( t => t.id )

Dadurch wird eine vorkompilierte vorbereitete Anweisung erstellt, die Sie mit Ihrer Methode verwenden können

def getSingle(id: Long):Option[Category] = byId(id).firstOption

    
Nilanjan 18.07.2013, 14:00
quelle
3

Zuerst sollten Sie versuchen, eine entartete Version desselben Codes zu verwenden:

%Vor%

Es sieht viel sauberer aus.

Sie können auch die Methode "firstOption" verwenden:

%Vor%     
alno 18.07.2013 13:54
quelle
0

Ich benutze slick 1.0.1 mit Play 2.2.1 und die folgenden Arbeiten für mich.

%Vor%

Rufen Sie es dann von einer Methode auf.

%Vor%

Bitte beachten Sie, dass DB.withSession eine Methode aus dem play-Framework ist.

Wenn Sie Play nicht verwenden, ist die Methode wie folgt:

%Vor%     
Goku__ 22.05.2015 06:40
quelle

Tags und Links