Опитвам се да напиша бърз браузър за данни за база данни, използвайки Squeryl, но имам затруднения да повторя всички таблици по общ начин. Въз основа на Squeryl Пример за SchoolDb Опитах следното:
def browseTable(name: String) = {
SchoolDb.tables.find(_.name == name) map { t=>
val fields = t.posoMetaData.fieldsMetaData
val rows = from (t) (s => select(s))
// Print the columns
println(fields.map(_.columnName).mkString("\t"))
rows map { row =>
println(fields.map(f => f.get(row)).mkstring("\t"))
}
}
Компилаторът не е много доволен от този опит (Липсващ тип тип за „ред“) и мога да разбера неговата дилема. Изричното деклариране на параметъра като Any просто променя грешката при компилиране на „Няма наличен имплицитен изглед от Any => org.squeryl.dsl.ast.TypedExpressionNode[_]“ на „f.get(row)“
Как мога или да поправя този проблем, или да променя моделите (може би добавяйки някаква черта), за да разреша общ достъп до всички данни във всички таблици?