我对 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
我在这里做错了什么?预先非常感谢。
最佳答案
方法参数和方法在 Scala 中位于同一命名空间中,因此您的 from
方法参数“隐藏”PrimitiveTypeMode
上的 from
方法。 (或 CustomTypeMode
)对象,您使用如下行将其带入范围:
import org.squeryl.PrimitiveTypeMode._
只需将参数名称更改为 fromDate
或 start
或其他名称即可。
关于scala - Squeryl的where "java.util.Date does not take parameters"中出现错误 "clause",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491018/