2013-11-14 21 views
5

クエリテンプレートでは無視されスリックパラメータが、私はそうのようなのクエリテンプレートを記述しようとしている

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")が0でクエリを生成することですただfalseです句:

select ... from "objects" where false 

が、私は適切な照会を持っている私のクエリテンプレートに何をしないのですか?私は、多くの場合、その滑らかな、その構文と少しグラグラすることができ、現在のドキュメントが特に良好ではない見つける

val byIdentifier = for { 
    (identifier, issuer) <- Parameters[(String, String)] 
    o <- Objects 
    if o.identifier === identifier 
    if o.identifierIssuer === issuer 
} yield o 

+0

これはや違いを確認しない場合があります。フィルタ条件で '==='の代わりに 'is'を使ってみましたか? –

答えて

1

は、次の構文を試してみてください。

また、あなたのfindByIdentifierが仕事を作ることができます:

def findByIdentifier(id: String, issuer: String): Option[Object] = { 
    Query(Object).where(_.identifier === id).where(_.identifierIssuer === issuer).run.headOption 
} 

私はそれが役に立てば幸い...

関連する問題