Ich versuche eine Slick-Abfrage mit einem negierten inSet
zu erstellen, aber ich habe Probleme, die richtige Syntax herauszufinden. Ich möchte etwas wie
oder
%Vor% von denen keiner übergibt. Ist es möglich, inSet
so zu negieren, und wenn ja, wie lautet die richtige Syntax? Oder gibt es eine andere Möglichkeit, die Abfrage zu erstellen, für die das negierte inSet
nicht benötigt wird? Ich benutze Slick 1.0.1, ich erwarte, dass wir im nächsten Monat auf Slick 2.0 upgraden werden. (Ich kann ein filterNot(lst.contains(_.id2))
auf die Abfrageergebnisse anwenden, anstatt ein negiertes inSet
in die Abfrage einzufügen, aber dies würde die Funktion, die ich schreibe, erschweren und daher würde ich lieber ein negiertes inSet
verwenden, wenn möglich. )
Eins von
Query(Table1).filter(_.id1 === 1).filter(row => !(row.id2 inSet lst)).list
Query(Table1).filter(_.id1 === 1).filterNot(_.id2 inSet lst).list
In Verbindung stehende: Ссылка
Anmerkungen zur Seite: where
ist veraltet. Verwenden Sie die Scala Collections-Terminologie anstelle der SQL-Terminologie. Außerdem sind Sie in der falschen Annahme, dass in Scala !(_.id2 inSet lst)
auf x => !(x.id2 inSet lst)
expandiert, wenn es tatsächlich zu !(x => x.id2 inSet lst)
expandiert, was wenig Sinn macht.