Play-Mongo 0.3.0 已发布。
Play-Mongo 0.2.0 版本通过 implicit macro 实现自动生成 Json Formats,代码如下:
package object models { implicit def formats[T <: Product]: Format[T] = macro JsonFormatMacro.materializeJsonFormat[T] }
但是在实际使用中发现,sbt 的增量编译和热加载有时会导致自动生成失效。故 Play-Mongo 0.3.0 版本使用 macro annotation 重新实现了该功能,用法如下:
package object models { @JsonFormat("models") implicit val formats = ??? }
在编译时,@JsonFormat 注解处会自动生成 models 包下所有 case classes 的隐式 Format 对象。