Squeryl Query, содержащий большеThanEqual (gte) или lessThanEqual (lte), дает неправильные / нет результатов - PullRequest
2 голосов
/ 14 июня 2011

Я пытаюсь сделать простой запрос с помощью squeryl.Однако это не работает!код компилируется, но запрос не возвращает результатов, но он должен!тот же запрос в пустом SQL работает отлично.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)
}

согласно http://max -l.github.com / Squeryl / functions.html это должно работать?.

1 Ответ

2 голосов
/ 14 июня 2011

Это должно было дать вам предупреждение об устаревании:

qryResult = from(DBName.tablename)(t => where(t.position <= 83172924) select (t))

Есть устаревшее неявное преобразование, которое вызывает проблемы, см.

https://groups.google.com/forum/#!searchin/squeryl/implicit$20boolean/squeryl/pSUzNDA4Bq4/oHmqS16yD_0J

Я только что удалил его из главной ветки.

Этот должен работать:

qryResult = from(DBName.tablename)(t => where(t.position lte 83172924) select (t))

Я только что попробовал, и он компилируется и работает правильно.

...