我是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
我在这里做错了什么?非常感谢。
答案 0 :(得分:3)
方法参数和方法在Scala中位于相同的命名空间中,因此您的from
方法参数会在PrimitiveTypeMode
(或from
)上“隐藏”CustomTypeMode
方法您带入范围的对象,其行如下所示:
import org.squeryl.PrimitiveTypeMode._
只需将参数名称更改为fromDate
或start
或其他任何内容,您应该没问题。