我正在尝试将查询或操作作为参数传递给方法。原因是我想对同一张表上不同查询的结果运行相同的操作。
例如:
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 会导致编译器错误:“未找到:值 ListItems”。
我还尝试通过操作而不是查询来查看我是否有更多的运气,但事实并非如此。类型相同,但 ListItems.TableElementType 仍然显示错误“未找到:值 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
如何将这些查询或操作作为参数传递给常用方法?