aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/Example.scala
blob: 85a6ed3deeb05a003e0e7b4e4f28d239d6c49ab0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
object Tables extends demo.Tables{ // or just use object demo.Tables, which is hard-wired to the driver stated during generation
  val profile = scala.slick.driver.H2Driver  
}
import Tables._
import Tables.profile.simple._

object Example extends App {
  // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run
  val url = "jdbc:h2:mem:test;INIT=runscript from 'src/main/sql/create.sql'"
  val db = Database.forURL(url, driver = "org.h2.Driver")

  // Using generated code. Our Build.sbt makes sure they are generated before compilation.
  val q = Companies.join(Computers).on(_.id === _.manufacturerId)
                   .map{ case (co,cp) => (co.name, cp.name) }

  db.withTransaction { implicit session =>
    println( q.run.groupBy{ case (co,cp) => co }
                  .mapValues(_.map{ case (co,cp) => cp })
                  .mkString("\n")
    )
  }
}