洗練されたコード:
case class User(id: Option[Int], name: Option[String])
class UserTable(tag: Tag) extends Table[User](tag, "app_user") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name", O.Nullable, O.DBType("VARCHAR(8)"))
override def * = (id.?, name.?) <> (User.tupled, User.unapply _)
}
object UserHelper {
val qUser = TableQuery[UserTable]
def all: List[User] = db withSession { implicit session =>
qUser.list.map(u => User.tupled(u.id, u.name))
}
}
プレイコード:
object UserController extends Controller {
def index = Action {
Ok(Json.toJson(UserHelper.all))
}
}
コンパイル エラー:
タイプ List[User] の Json デシリアライザーが見つかりません。この型の暗黙の Writes または Format を実装してみてください。