Dynamic table name override in Slick table

北城余情 提交于 2019-12-10 16:44:40

问题


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
}

回答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

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 ...


来源:https://stackoverflow.com/questions/20560721/dynamic-table-name-override-in-slick-table

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!