我在 DB View 上定义了一个光滑的表,如下所示。每天我们都会创建一个与相同结构匹配的日期 View ,名称后附日期为 T_SUMMARY_,即 T_SUMMARY_20131213。
有没有一种巧妙的方法可以动态覆盖表名以生成正确的日期 View 所需的查询。
object TSummary extends Table[(String)]("T_SUMMARY")
{
def id = column[String]("ROWID", O.PrimaryKey)
def tNum = column[Int]("T_NUM")
def tName = column[Int]("T_NAME")
def * = id
}
最佳答案
在 Slick 1.0.1 中:
def mkSummaryTable(name: String) = new Table[(String)](name){
def id = column[String]("ROWID", O.PrimaryKey)
def tNum = column[Int]("T_NUM")
def tName = column[Int]("T_NAME")
def * = id
}
val current = mkSummaryTable("T_SUMMARY_20131213")
for( r <- Query(current) ) yield r.tName
对于 Slick 2.0,请参阅 https://groups.google.com/d/msg/scalaquery/95Z7AfxKP_4/omGnAtuN8FcJ :
class MyTable(tag: Tag, tableName: String) extends Table[(String)](tag, tableName){
def id = column[String]("ROWID", O.PrimaryKey)
def tNum = column[Int]("T_NUM")
def tName = column[Int]("T_NAME")
def * = id
}
val tQ = TableQuery[MyTable]((tag:Tag) => new MyTable(tag, "SomeTableName")) filter ...
关于scala - Slick 表中的动态表名覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20560721/