在Squeryl的“子句”中出现错误“java.util.Date不带参数”

时间:2012-07-15 09:58:45

标签: scala squeryl

我是Scala的新手,目前在我们的MySQL数据库中使用了一个名为Squeryl的ORM。

我要做的是查找属于时间范围内的多个记录。 例如,在纯SQL中,我认为它类似于:

    SELECT * FROM records WHERE updated_at >= ? AND updated_at < ? 

但是,我的Scala代码实现了如下所示的类似行为,在“from(records)”的开头括号中给出了一个错误“java.util.Date不接受参数”

    def getRecordsBetween(from:java.util.Date, til:java.util.Date):List[Record]
      transaction {
        from(records)(record =>
          where(
            record.updatedAt gte from and
            record.updatedAt lt til
          )
          select(record)
        ).toList
      }
    }

(其中val记录= tableRecord

我在这里做错了什么?非常感谢。

1 个答案:

答案 0 :(得分:3)

方法参数和方法在Scala中位于相同的命名空间中,因此您的from方法参数会在PrimitiveTypeMode(或from)上“隐藏”CustomTypeMode方法您带入范围的对象,其行如下所示:

import org.squeryl.PrimitiveTypeMode._

只需将参数名称更改为fromDatestart或其他任何内容,您应该没问题。