Slick ORM中有一个名为TableQuery的类。它的伴随对象有apply方法:
def apply[E <: AbstractTable[_]]: TableQuery[E] =
macro TableQueryMacroImpl.apply[E]
我有类扩展表,扩展了AbstractTable,所以我可以这样写:
class Users(tag: Tag) extends Table[User](tag, "users") {..some code..}
val query = TableQuery[Users]
我想概括使用数据库,所以我创建了Dao类
class Dao[A, B <: AbstractTable[A]] {
private val query = TableQuery[B]
}
这里的编译器说:“需要类类型但是找到了B”。当我将B&lt ;: AbstractTable [A]更改为B:ClassTag时,它也不会运行。
那么我必须使用什么泛型类型将它发送到TableQuery?