Slick 表中的动态表名覆盖 [英] Dynamic table name override in Slick table

查看:56
本文介绍了Slick 表中的动态表名覆盖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 DB 视图上定义了一个光滑的表,如下所示.每天我们都会创建一个与相同结构匹配的日期视图,名称后缀为 T_SUMMARY_,即 T_SUMMARY_20131213.

I have defined a slick table as below on DB view. Every day we create a dated view matching the same structure with name appended with date as T_SUMMARY_ i.e.T_SUMMARY_20131213.

有没有一种巧妙的方法可以动态覆盖表名以生成正确的日期视图所需的查询.

Is there a way in slick where table name can be dynamically overridden to generate required query for a correct dated 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 中:

In 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:

For Slick 2.0 see 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 ...

这篇关于Slick 表中的动态表名覆盖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆