8
W Slick 2.1 miałem poniższy kod, aby wykonać zapytania SQL z pliku:Jak korzystać z StaticQuery w Slick 3.0.0?
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)
}
}
W Slick 3.0.0 użyć metody dbConfig.db.run wykonać DBIOAction i uzyskać przyszłości wyniku . Ale nie mogę znaleźć sposobu na przekształcenie wyniku Q.queryNA (który jest StaticQuery[Unit, R]
) w DBIOAction
. Czy taki sposób istnieje?
Na tym skończyłem z przestarzałymi połączeniami. Pomóż mi być lepszym!
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)
}
}
Występuje problem https://github.com/slick/slick/issues/1161 o subj na GitHub. – sedovav