MySQLのdatetimeをAnormでSELECTしてJSONに変換するまでのコードがどうしてもヒットしなかったのでメモ
ポイントは以下
- 変換する型はDate
- importするDateはjava.sql.Dateでなくjava.util.Date
- JSONにはDatetime型なんてないのでtoStringしてStringとして定義
とくに[2]は型を間違うと以下のようなエラーが出る
could not find implicit value for parameter c: anorm.Column[java.sql.Timestamp]
import java.util.Date
// 途中のコードは略
val bases_records = SQL("SELECT * FROM BASES WHERE COURS_ID IN ({IDS}) ORDER BY ID").on("IDS" -> seq_cours_infos_records)().map {
row => (
Map(
"id" -> JsNumber(row[Int]("id")),
"created_at" -> JsString(row[Date]("created_at").toString)
)
)
}.toList
Ok(Json.toJson(bases_records))
anormが定義している型は以下にリファレンスがある
https://www.playframework.com/documentation/2.3.1/api/scala/index.html#anorm.Column