case class Employee(id: Long, name: String, address: String, designation: String)
object Employee {
// -- Parsers
/**
* Parse a Employee from a ResultSet
*/
val employee = {
get[Long]("employee.id") ~
get[String]("employee.name") ~
get[String]("employee.address") ~
get[String]("employee.designation") map {
case id ~ name ~ address ~ designation => Employee(id, name, address, designation)
}
}
// -- Queries
Employee
/**
* Retrieve a employee from the id.
*/
def findById(id: Long): Option[Employee] = {
DB.withConnection { implicit connection =>
SQL("select * from employee where id = {id}").on('id -> id).as(employee.singleOpt)
}
}
...
}