Sto cercando di scrivere un modello di query per questo modo:Slick - I parametri vengono ignorati in un modello di query
val byIdentifier = for {
(identifier, issuer) <- Parameters[(String, String)]
o <- Objects if (o.identifier === identifier) && (o.identifierIssuer === issuer)
} yield o
E poi usare in questo modo:
def findByIdentifier(id: String, issuer: String): Option[Object] =
byIdentifier(id, issuer).firstOption
Objects
è una tabella con incorporamento sollevato:
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")
...
}
Il problema che ho riscontrato è che findByIdentifier("asdf", "weqr")
produce una query con un where
clausola che è solo false
:
select ... from "objects" where false
Quello che mi manca nel mio modello di query per avere una corretta esecuzione di query?
Questo può o non può fare la differenza. Hai provato a usare 'is' invece di' === 'nelle condizioni del filtro? –