Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 自动回滚不';t回滚_Scala_Specs2_Scalikejdbc - Fatal编程技术网

Scala 自动回滚不';t回滚

Scala 自动回滚不';t回滚,scala,specs2,scalikejdbc,Scala,Specs2,Scalikejdbc,运行以下规范后,表就存在了。我希望它永远不会出现,因为它应该只存在于最终回滚的事务中 import org.specs2.mutable.Specification import scalikejdbc.{DB, NamedDB} import scalikejdbc.specs2.mutable.AutoRollback class MyQuerySpec extends Specification with ArbitraryInput { sequential DBs.set

运行以下规范后,表就存在了。我希望它永远不会出现,因为它应该只存在于最终回滚的事务中

import org.specs2.mutable.Specification
import scalikejdbc.{DB, NamedDB}
import scalikejdbc.specs2.mutable.AutoRollback

class MyQuerySpec extends Specification with ArbitraryInput {

  sequential

  DBs.setup('myDB)

  "creating the table" in new AutoRollback {
    override def db(): DB = NamedDB('myDB).toDB()
    private val tableName = s"test_${UUID.randomUUID().toString.replaceAll("-", "_")}"
    private val query = new MyQuery(tableName)

    query.createTable
    ok
  }
}
DBs.setup('myDB)
不是示例的一部分。但是如果我删除它,我会得到异常
java.lang.IllegalStateException:连接池尚未初始化。(名称:'myDB)

MyQuery.create的源代码:

SQL(s"DROP TABLE IF EXISTS $tableName").execute().apply()
SQL(s"""
     |CREATE TABLE $tableName (
     |  id               bigint PRIMARY KEY
     |)""".stripMargin).execute().apply()
配置:

db {
  myDB {
    driver = "org.postgresql.Driver"
    url = "****"
    user = "****"
    password = "****"
    poolInitialSize = 1
    poolMaxSize = 300
    poolConnectionTimeoutMillis = 120000
    poolValidationQuery = "select 1 as one"
    poolFactoryName = "commons-dbcp2"
  }
}
ScalikeJDBC v2.2.9

MyQuery#createTable
必须接受如下隐式参数:

def createTable(隐式会话:DBSession)

尝试在连接属性中设置
autoCommit=“false”
defaultAutoCommit=“false”
。似乎
defaultAutoCommit=“false”
已起作用。非常感谢。晚上睡个好觉后会完全确认。哈尼错了。它不起作用。只是当我检查时,IntelliJ中的模式列表没有更新。很抱歉,您可以尝试使用DML操作(替换创建表以插入数据),只是为了确保这是scalikejdbc的问题。