Я имел эти строки в моем кодеНе выбрано значение параметра rconv
val x = database.withSession { implicit session =>
StaticQuery.queryNA[Long](s"select id from .....")
}
val y = database.withSession { implicit session =>
StaticQuery.queryNA[Long](s"select id1 from .....")
}
val z = database.withSession { implicit session =>
StaticQuery.queryNA[(Long, Long)](s"select id1, id2 from .....")
}
Для того, чтобы минимизировать дублирование кода я изменил мой код
def genericExec[T](query: String) : List[T] = {
database.withSession { implicit session =>
StaticQuery.queryNA[T](query).list
}
}
for {
x <- genericExec[Long](query1)
y <- genericExec[Long](query2)
z <- genericExec[(Long, Long)](query3)
} {...}
Конечно я получаю ошибку теперь, когда
Error:(16, 32) not enough arguments for method queryNA: (implicit rconv: scala.slick.jdbc.GetResult[T])scala.slick.jdbc.StaticQuery[Unit,T].
Unspecified value parameter rconv.
StaticQuery.queryNA[T](query).list
Поскольку тип T является полностью общим, для меня невозможно обеспечить все типы преобразований. Так как я могу сохранить свою родовую реализацию и просто обеспечить преобразования, которые мой тип T на самом деле, используя в своем коде (он же долго, и (Long, Long)