2016-03-16 35 views
1

我正在使用Slick查詢數據庫。我通過一個案例類,它看起來像類似於我的查詢方法...浮動可選查詢參數

case class queryParams(id:Int, age:Option[Int] = None, 
    categoryId:Option[Int] = None) 

我有一個漂亮的查詢類似於...

val query = this.filter(row => 
    (row.id == queryParams.id)) 
query.list 

這工作得很好。但我現在想要做的是擴展查詢,以包括其他queryParams成員「如果」他們被定義,但我不確定我應該如何構造這個。

我想是這樣的......

for { row <- this.list 
    if(row.id == queryParams.id) 
    // include 
    if(queryParams.age.isDefined) row.age == queryParams.age.get 
    } yield row 

我怎樣才能在查詢可選PARAMS?

感謝

+0

爲什麼'if'?只要你有選擇,你可以插入選項,而不是作爲一種特殊情況處理。 – Reactormonk

+0

嗨反應堆。這部分是我的問題。由於我的不好意思,我不確定所需的語法! :) – fatlog

+0

然後再提供一些代碼。 – Reactormonk

回答