SQUERYL query contenente GreaterThanequal (GTE) o LessThanequal (LTE) dà risultati errati/nessun risultato

StackOverflow https://stackoverflow.com/questions/6343347

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.

È stato utile?

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
scroll top