【发布时间】:2018-02-21 03:46:28
【问题描述】:
我正在尝试实现 HSQLDB 而不是 Mysql,我的其余部分是通过 akka-http 实现的服务,由 Hikari cp 提供光滑和连接池。 早点
class HikariService(jdbcUrl: String,
dbUser: String,
dbPassword: String,slickProfile:String) extends DriverDataSource{
private val hikariConfig = new HikariConfig()
val jdbcurl: String = s"$jdbcUrl/db_name"
hikariConfig.setJdbcUrl(jdbcurl)
hikariConfig.setUsername(dbUser)
hikariConfig.setPassword(dbPassword)
private val dataSource = new HikariDataSource(hikariConfig)
val driver = if(slickProfile == "MySQL")
slick.jdbc.MySQLProfile
else slick.jdbc.HsqldbProfile
import driver.api._
val db = Database.forDataSource(dataSource)
db.createSession()
}
而我的 hsqldb 的 jdbc url 是 jdbc:hsqldb:file:/Users/abc/
现在我可以看到在 abc 目录中生成的日志,其中包含 .log 文件,上面写着
SET SCHEMA PUBLIC
并且所有表都是使用公共模式创建的。
现在,当我使用 slick 进行查询时,它会抛出错误
处理请求时出错:
'user lacks privilege or object not found: table_name in statement [select "id", "name", "type", "configuration", "description" from "table_name" ]
我的光滑连接看起来像
trait EntityTable {
protected val hikariService: HikariService
import hikariService.driver.api._
protected val enricher = TableQuery[Table_name]
class Enricher(tag: Tag) extends Table[EnricherEntity](tag, "table_name") {
def * = (id, name, `type`, description, configuration) <> ((EnricherEntity.apply _).tupled, EnricherEntity.unapply)
def id = column[Option[Long]]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name")
def `type` = column[String]("type")
def description = column[Option[String]]("description")
def configuration = column[String]("configuration")
}
}
这样做的正确方法是什么
【问题讨论】:
-
数据库名真的是db_name,表名真的是table_name吗?看起来您在这里缺少一些字符串插值^^
-
请在该表的 .log 文件中报告 CREATE TABLE ... 语句。
-
CREATE MEMORY TABLE "db_name"."table_name"("version_rank" INTEGER NOT NULL,"installed_rank" INTEGER NOT NULL,"version" VARCHAR(50) NOT NULL,"description" VARCHAR(200) NOT NULL,"type" VARCHAR(20) NOT NULL,"script" VARCHAR(1000) NOT NULL,"checksum" INTEGER,"installed_by" VARCHAR(100) NOT NULL,"installed_on" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,"execution_time" INTEGER NOT NULL,"success" BIT(1) NOT NULL,CONSTRAINT "schema_version_pk" PRIMARY KEY("version")) -
@C4stor 我已将 db_name 和 table_name 分别作为数据库和表的引用名称
标签: scala slick hsqldb akka-http