【发布时间】:2013-11-14 16:18:31
【问题描述】:
我正在尝试为此编写一个查询模板:
val byIdentifier = for {
(identifier, issuer) <- Parameters[(String, String)]
o <- Objects if (o.identifier === identifier) && (o.identifierIssuer === issuer)
} yield o
然后像这样使用它:
def findByIdentifier(id: String, issuer: String): Option[Object] =
byIdentifier(id, issuer).firstOption
Objects 是一个提升嵌入的表:
case class Object(val identifer: String, val identifierIssuer: String)
object Objects extends Table[Object]("objects") {
def identifier = column[String]("identifier")
def identifierIssuer = column[String]("identifier_issuer")
...
}
我遇到的问题是findByIdentifier("asdf", "weqr") 生成一个带有where 子句的查询,它只是false:
select ... from "objects" where false
为了进行正确的查询,我的查询模板中缺少什么?
【问题讨论】:
-
这可能会或可能不会有所作为。您是否尝试过在过滤条件中使用
is而不是===?
标签: sql postgresql scala parameters slick