0
我試圖將查詢或操作作爲參數傳遞給方法。原因是我想對同一個表上不同查詢的結果運行相同的操作。查詢或DBIOAction的常見類型
例如:
val query1 = listItems
val query2 = listItems.filter { x => x.id===1 }
而且我的方法:
private def findListItems(query: Query[???]): Future[Foo] = { ... }
打開我不能只是通過QUERY1或QUERY2因爲他們有不同的類型(這是我的IDE自動完成的):
val query1: TableQuery[ListItems] = listItems
val query2: Query[ListItems, ListItems.TableElementType, Seq] = listItems.filter(_.listId===1)
此外,ListItems.TableElementType中的ListItems導致編譯器錯誤:「not fou nd:值ListItems「。
我也試圖通過行動而不是查詢來看看我是否有更多的運氣,但事實並非如此。類型相同,但ListItems.TableElementType仍顯示錯誤「not found:value ListItems」。
val action1: DBIOAction[Seq[ListItems.TableElementType], ListItems.TableElementType, Effect.Read] = query1.result
val action2: DBIOAction[Seq[ListItems.TableElementType], ListItems.TableElementType, Effect.Read] = query2.result
我如何可以通過這些查詢或操作作爲參數傳遞給一個常用的方法?
啊,謝謝!通配符類型不起作用,因爲我正在訪問字段(不投射)。問題是我的類型是(Int,String,Int,Int,Boolean,String,String,String) - 自動完成似乎無法確定這一點。由於某種原因,我不認爲這是TableElementType,儘管它是完全合理的。 – Ixx