为什么我在调用 StaticQuery updateNA "shutdown;" 时得到 'Database is already closed'

Why do I get 'Database is already closed' when invoking StaticQuery updateNA "shutdown;"

import scala.slick.driver.H2Driver
import scala.slick.jdbc.StaticQuery

object Main extends App {
  val db = H2Driver.simple.Database forURL (url = s"jdbc:h2:mem:test", user = "sa", driver = "org.h2.Driver")
  StaticQuery updateNA "shutdown;" execute db.createSession()
}

使用 scala 2.11.5、h2 1.4.186 和 slick 2.1.0 执行此操作会产生 "org.h2.jdbc.JdbcSQLException: Database is already closed"。这里发生了什么?

执行 "shutdown" 准备好的语句后,灵活的 StatementInvoker 向数据库询问语句的 updateCount。

H2 数据库不喜欢被询问,因为它已经关闭。

我不知道这两者中哪一个的行为不正确。但是,如果您碰巧遇到同样的问题,关闭数据库只需使用

db.createSession().createStatement() 执行"shutdown;"