焼け石に肉

新米プログラマの学習記録日記です。Scalaに興味があるので、ScalaとPlay Frameworkの勉強メモを残していこうと思います。

【Scala】Scala&Play Frameworkで掲示板を作ってみる Part3【Play Framework】

久しぶりの更新になります。

今回はModelについて書いていきます。

Message.scala

package models

import java.time.ZonedDateTime

import scalikejdbc._, jsr310._
import skinny.orm._

case class Message(id: Option[Long], body: String, title: String, createAt: ZonedDateTime, updateAt: ZonedDateTime)

object Message extends SkinnyCRUDMapper[Message] {

  override def tableName = "messages"

  override def defaultAlias: Alias[Message] = createAlias("m")

  override def extract(rs: WrappedResultSet, n: ResultName[Message]): Message =
    autoConstruct(rs, n)

  private def toNamedValues(record: Message): Seq[(Symbol, Any)] = Seq(
    'body     -> record.body,
    'title    -> record.title,
    'createAt -> record.createAt,
    'updateAt -> record.updateAt
  )

  def create(message: Message)(implicit session: DBSession): Long =
    createWithAttributes(toNamedValues(message): _*)

  def update(message: Message)(implicit session: DBSession): Int =
    updateById(message.id.get).withAttributes(toNamedValues(message): _*)
}

createとupdateメソッドは、ヘルパーメソッドです。

とりあえず今回はモデルだけの説明になります。
次回で完成させていきたいと思います。