0
用例:編寫一個通用的功能像使用依賴型產生編譯錯誤
def tenantFilterQuery[T, Q <: Table[T]](t: Q, e: TableQuery[Q], id: Int)(implicit s: Session) :Query[Q,Q#TableElementType,Seq] = {
e.filter(_.tenantId === id)
}
我想補充編譯時情報,e.filter(_.tenantId === id)
過濾器應只應用於如果通過T
有一個名爲tenantId
屬性否則它不會應用該過濾器,如果T
沒有該屬性。
這可以解決與依賴路徑類型有或沒有使用無形?
第二步試圖拿出其中,當最後Query
由一種方式,如果T
一直屬性命名tenantId
它會在編譯時失敗,如果沒有filter
上tenantId
它。想一想第一個問題,我應該爲這個問題創建一個單獨的問題。
我不知道你正在使用這個數據庫庫,但它看起來像你需要'Q'包含'tenantId'。相同的技術應該可以工作。 – lmm 2014-11-25 08:01:21