我有两个相同的表,每个表都在不同的数据库中。此外,表格有不同的名称。
我已经在课程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
这可能吗?或者我需要定义类,每个数据库一个?
答案 0 :(得分:0)
class BankDB(tag: Tag,tableName: String) extends Table[Bank](tag, tableName)
def getTableQuery(tableName: String) =
TableQuery[BankDB]((t: slick.lifted.Tag) => new BankDB(t, tableName))