Aktualisierung: Okay, ich habe das Problem behoben, das ich hatte, aber ich bin mir immer noch nicht ganz sicher, was ich falsch gemacht habe. In jedem Fall habe ich die folgende Methode in IRCDB geschrieben:
%Vor%Dann benutzte es so:
%Vor% Und es funktioniert jetzt. Aus meiner Sicht glaubte ich, dass ich, sobald die Sitzung mit der SessionFactory erstellt wurde, transaction { ... }
überall verwenden könnte, wo der Import korrekt ist. Offensichtlich ist mein Verständnis falsch.
Wenn jemand etwas hinzuzufügen hat, bitte tun.
Also, ich habe gerade begonnen, Squeryl für ein Projekt zu verwenden, an dem ich gerade arbeite, und das könnte nur ein Versehen sein. Also zuerst der Code:
Ich habe folgende Importe:
%Vor%Ich habe die folgende Tabelle definiert:
%Vor%Und das folgende Schema definiert:
%Vor%Ich konnte mit der folgenden Tabelle in die Tabelle einfügen:
%Vor% Ich kann mit der H2-Konsole bestätigen, dass dies tatsächlich geschieht. Wenn ich jedoch IRCDB.getAllChannels
(sowohl in der Scala-Konsole als auch im Code) anrufe, erhalte ich den folgenden Fehler:
Ich verstehe nicht, warum ich diesen Fehler bekommen würde, wenn ich Zeilen in die Tabelle einfügen könnte, die fast genauso funktionieren. Wenn ich versuche, transaction { from(IRCDB.channels)(c => select(c)) }
auf der Konsole auszuführen, erhalte ich den gleichen Fehler.
Bearbeiten: Ich habe den vollständigen Stack-Trace hinzugefügt. Außerdem habe ich die Funktion getAllChannels
wie folgt umgeschrieben:
Ich erhalte immer noch einen Fehler, aber es druckt die Abfrage zuerst aus - ich dachte, das könnte nützlich sein:
%Vor%Hier ist, was ich vermute, Ihre Methode:
def getAllChannels = transaction { from(channels)(c => select(c))}
gibt eine unbewertete -Abfrage zurück, d. h. der Rückgabetyp von
from(channels)(c => select(c))
ist Query[ChannelTable]
Die Methode kehrt zurück, die Transaktion wird beendet, die Konsole versucht, sie zu drucken.
was eine Auswertung auslöst:
Da die Transaktion beendet ist, erhalten Sie die Nachricht, die Sie erhalten.
Versuchen Sie Folgendes:
%Vor%