Squeryl -Abfrage, die Greaterthanqual (GTE) oder Lessthanqual (LTE) enthält, geben falsch/keine Ergebnisse
Frage
Ich versuche eine einfache Frage mit Squeryl zu machen. Es funktioniert jedoch nicht! Der Code kompiliert, aber die Abfrage gibt keine Ergebnisse zurück, aber es sollte! Die gleiche Abfrage in leerem SQL funktioniert perfekt. SELECT * FROM tablename WHERE position <= 83172924
val qryResult = from(DBName.tablename)(t => where(t.position === 83172924) select (t)) //works! but not what i want
val qryResult = from(DBName.tablename)(t => where(t.position <= 83172924) select (t)) //compile OK, no results
val qryResult = from(DBName.tablename)(t => where(t.position lte 83172924) select (t)) //compile ERROR
object DBName extends Schema {
val tablename = table[FOO]("tablename")
}
class FOO(var position: Int) {
def this() = this (0)
}
entsprechend http://max-l.github.com/squeryl/functions.html es sollte funktionieren?!
Jede Hilfe wird geschätzt.
Lösung
Dies hätte Ihnen eine Abschaltwarnung geben sollen:
qryResult = from(DBName.tablename)(t => where(t.position <= 83172924) select (t))
Es gibt eine veraltete implizite Konvertierung, die Probleme verursacht. Sehen Sie dies
https://groups.google.com/forum/#!$ 20Boolean/Squeryl/psuznda4bq4/ohmqs16yd_0j
Ich habe es gerade von Master Branch entfernt.
Dieser sollte funktionieren:
qryResult = from(DBName.tablename)(t => where(t.position lte 83172924) select (t))
Ich habe es gerade versucht und es kompiliert und läuft richtig.