【发布时间】:2018-07-04 09:53:42
【问题描述】:
我有两个相同的表,每个表都在不同的数据库中。此外,这些表具有不同的名称。
我已经在 BankDB 类中硬编码了表的名称:
class BankDB(tag: Tag) extends Table[Bank](tag, "banks1") {
def sk = column[Int]("sk", O.PrimaryKey)
def name = column[String]("name")
// other columns
我需要的是,根据数据库名称,设置表的名称,如下所示:
val tableName = if (dbName == "DB1") "banks1" else "banks2"
然后在 TableQuery 中使用 tableName 让 Slick 指向正确的表:
val db = Database.forConfig(dbName)
try {
val banks = TableQuery[BankDB](tableName) // <== this doesn't work
val future = db.run(banks.filter(_.sk === sk).result)
val result = Await.result(future, Duration.Inf)
result
} finally db.close
这可能吗?或者我需要定义类,每个数据库一个?
【问题讨论】: