Shapeless HList support for Slick.
by Richard Dallaway, Miles Sabin, and Dave Gurnell.
Copyright 2015 Underscore Consulting LLP. Licensed Apache 2.
Grab the code by adding the following to your build.sbt
:
scalaVersion := "2.11.7"
resolvers += "Underscore Bintray" at "https://dl.bintray.com/underscoreio/libraries"
libraryDependencies ++= Seq(
"com.typesafe.slick" %% "slick" % "3.0.0",
"com.chuusai" %% "shapeless" % "2.2.5",
"io.underscore" %% "slickless" % "0.1.0"
)
Import Slick, shapeless, and slickless,
and you should be able to define Tables
on any shapeless HList
type:
import slick.driver.H2Driver.api._
import shapeless.{ HList, ::, HNil }
import slickless._
class Users(tag: Tag) extends Table[Long :: String :: HNil](tag, "users") {
def id = column[Long]( "id", O.PrimaryKey, O.AutoInc )
def email = column[String]("email")
def * = id :: email :: HNil
}
lazy val users = TableQuery[Users]