包含greaterThanEqual(gte)或lessThanEqual(lte)的Squeryl Query会给出错误/无结果

时间:2011-06-14 12:19:19

标签: sql database scala orm squeryl

我正在尝试使用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 个答案:

答案 0 :(得分:2)

这应该给你一个弃用警告:

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))

我只是尝试了它,它编译并正确运行。