【问题标题】:Slick select all rows for table with no filtering光滑选择表的所有行,没有过滤
【发布时间】:2017-04-07 15:18:59
【问题描述】:

如何获得JurisdictionRow 对象的集合?我需要SELECT * FROM jurisdiction

object JurisdictionRepo extends {
  val profile = slick.driver.MySQLDriver
} with JurisdictionRepo

trait JurisdictionRepo {
  private val dbConfig: DatabaseConfig[MySQLDriver] = DatabaseConfig.forConfig("pnga-master-data")
  private val db = dbConfig.db

  val profile: slick.driver.JdbcProfile
  val tableName = "jurisdiction"

  def add(jurisdictionRow: JurisdictionRow): Future[Unit] = db.run(query += jurisdictionRow).map { _ => () }

  def delete(id: String): Future[Int] = db.run(query.filter(_.id === id).delete)

  def get(id: String): Future[Option[JurisdictionRow]] = db.run(query.filter(_.id === id).result.headOption)

def all() = ???

  import profile.api._

  lazy val schema: profile.SchemaDescription = query.schema

  case class JurisdictionRow(id: String,
                             parentId: String,
                             name: String,
                             code: String)

  class Jurisdiction(_tableTag: Tag) extends Table[JurisdictionRow](_tableTag, tableName) {
    val id: Rep[String] = column[String](s"${tableName}_id", O.PrimaryKey, O.Length(36, varying=true))
    val parentId: Rep[String] = column[String]("parent_id", O.Length(36, varying=true))
    val name: Rep[String] = column[String]("name", O.Length(255, varying=true))
    val code: Rep[String] = column[String]("code", O.Length(255, varying=true))

    def * = (id, parentId, name, code) <> (JurisdictionRow.tupled, JurisdictionRow.unapply _)
  }

  lazy val query = new TableQuery(tag => new Jurisdiction(tag))

}

我想实现all 方法以返回表中所有可能的JurisdictionRow 对象。这似乎是一个常见的情况,但 Slick 文档并没有帮助。我只需要一个普通的旧结果集,没有花哨的过滤等。

【问题讨论】:

标签: scala playframework slick


【解决方案1】:

只需复制您在其他查询中已有的内容,但没有过滤器部分。

def all = db.run(query.result)

看看 first 的例子: http://slick.lightbend.com/doc/3.2.0/gettingstarted.html#querying

【讨论】:

    猜你喜欢
    • 2020-07-07
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2017-07-29
    • 2020-10-09
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多