SQUERYL query contenente GreaterThanequal (GTE) o LessThanequal (LTE) dà risultati errati/nessun risultato
Domanda
Sto cercando di fare una semplice domanda con Squeryl. Tuttavia non funziona! Il codice compila ma la query non restituisce risultati, ma dovrebbe! La stessa query in Blank SQL funziona perfettamente. 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)
}
secondo http://max-l.github.com/squeryl/functions.html dovrebbe funzionare?!
Qualsiasi aiuto è apprezzato.
Soluzione
Questo avrebbe dovuto dare un avviso di deprecazione:
qryResult = from(DBName.tablename)(t => where(t.position <= 83172924) select (t))
C'è una conversione implicita deprecata che sta causando problemi, vedi questo
https://groups.google.com/forum/#!searchin/squeryl/implicit$ 20Boolean/SQUERYL/PSUZNDA4BQ4/OHMQS16YD_0J
L'ho appena rimosso da Master Branch.
Questo dovrebbe funzionare:
qryResult = from(DBName.tablename)(t => where(t.position lte 83172924) select (t))
L'ho appena provato e si compila e funziona correttamente.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow