gpt4 book ai didi

scala - 如何在Slick 3.0.0中使用StaticQuery?

转载 作者:行者123 更新时间:2023-12-04 04:16:48 26 4
gpt4 key购买 nike

在Slick 2.1中,我有以下代码从文件执行sql查询:

def fetchResult[T](sql: String)(implicit getResult: GetResult[T]): List[T] = {
val query = Q.queryNA[T](sql)
try {
Database.forDataSource(DB.getDataSource())
.withSession { implicit session => query.list }
}
catch {
case e: Throwable =>
throw new RunSqlException(s"Query $name execution error", e)
}
}

在Slick 3.0.0中,您使用dbConfig.db.run方法执行DBIOAction并获得结果的 future 。但是我找不到将Q.queryNA(即 StaticQuery[Unit, R])的结果转换为 DBIOAction的方法。是否存在这种方式?

我现在结束了不推荐使用的电话。帮我变得更好!
def fetchResult[T](sql: String)(implicit getResult: GetResult[T]): Future[List[T]] = Future {
val query = Q.queryNA[T](sql)
try {
this.dbConfig.db.withSession { implicit session => query.list }
}
catch {
case e: Throwable =>
throw new RunSqlException(s"Query $name execution error", e)
}
}

最佳答案

我设法找到的唯一解决方案有点骇人听闻:

import slick.driver.HsqldbDriver.api._

def fetchResult[T](sql: String) = {
database.run(sqlu"""#$sql""")
}

关于scala - 如何在Slick 3.0.0中使用StaticQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30846817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com