问题描述
我正在尝试创建一种方法,该方法将接受案例类并以List [C]的形式返回元素。为了测试,我有以下可行的方法
object LocalRun extends App {
implicit private val cs = IO.contextShift(ExecutionContexts.synchronous)
private lazy val xa = Transactor.fromDriverManager[IO](
"org.h2.Driver","jdbc:h2:./dbdir/mydb:mydb","",Blocker
.liftExecutionContext(ExecutionContexts.synchronous)
)
val stmt: String =
"select table_name,count(1) as col_cnt from information_schema.columns where table_name = 'FUNCTION_COLUMNS'"
private val proc: fs2.Stream[doobie.hi.ConnectionIO,(String,Int)] =
HC.stream[(String,Int)](stmt,HPS.set(()),512)
proc.compile.toList
.transact(xa).unsafeRunSync.take(5).foreach(e =>
println(s"table name: ${e._1},number of columns: ${e._2}")
)
new Directory(new File("./dbdir/mydb")).deleteRecursively()
}
输出
table name: FUNCTION_COLUMNS,number of columns: 17
我想创建类似的东西
def runSelect[C](stmt: String) = HC.stream[C](stmt,512)
但是编译器向我抛出以下错误:
是否有办法克服此错误并创建多态函数,该函数将接受具有匹配选择条件的任意案例类并返回列表?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)