1
私はこのエラーを理解したいと思います:Scalaこの "_1"型は何ですか?
found : row.type (with underlying type _#TableElementType)
required: _1#TableElementType
は、私は非常に近かったように見えますが、この「1」_1#TableElementType
では何ですか?私は他を変えることはできますか?
編集:コンテキストのコードの有効ビット(+スリック再生):tableObject
の
abstract class GenericDAO[T <: AbstractTable[_]](...) {
def table: TableQuery[T]
def insert(model: T#TableElementType) = db run (table += model)
}
trait TableObject[T <: AbstractTable[_]] {
def rowFromJson(jsObject: JsObject): T#TableElementType
def dao(driver: JdbcProfile, db: Database): GenericDAO[T]
}
// Controller Action with an instance implementing `tableObject` above:
val tableObject = tableObjectFactory("test")
val row = tableObject.rowFromJson(request.body.asJson.get)
val dao = tableObject.dao(driver, db) // tableObject has a DOA extending GenericDAO
dao.insert(row)
例:
object TestTable extends TableObject[Test] {
def dao(driver: JdbcProfile, db: Database) = new TestDAO(driver, db)
def rowFromJson(j: JsObject): TestRow = { TestRow(...) }
class TestDAO(...) extends GenericDAO[Test](driver, db) { ... }
}
私はURLから正しいものを取得するファクトリを使用:
object TableObjectFactory {
def tableObjectFactory(name: String) = {
name match {
case "test" => TestTable
case "projects" => ProjectsTable
case "people" => PeopleTable
...
}
}
}
コードを共有できますか? – BDR
コンテキストを提供するコードを追加しました。 – JulienD
'tableObject'の型は正確に何ですか?あなたは 'val tableObject = TestTable'と定義していますか? –