2017-04-07 97 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谢谢先生 –

回答