2017-04-07 88 views
0

如何獲得JurisdictionRow對象的集合?我需要一個SELECT * FROM jurisdictionSlick選擇所有行,無需篩選

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文檔沒有幫助。我只需要一個普通的舊結果集,沒有花哨的過濾等。

+0

如果你需要,我在https://github.com/pedrorijo91/play-slick3-steps一個簡單的工作示例(還有一個關於http://pedrorijo.com/blog/play-slick/的教程)。希望它可以幫助未來的問題:) – pedrorijo91

+0

@ pedrorijo91謝謝先生 –

回答