我试图将我的代码迁移到Play 2.6,除了DateTime类型的格式之外,一切都很好。
作为迁移的一部分,我已经添加了play-json-joda
依赖。
然而,像这样的问题:
case class GeoArea(id: Option[Int] = None,
continentId: Option[Int] = None,
countryId: Option[Int] = None,
code: String,
name: String,
discr: Discriminator.Value,
createdAt: DateTime = DateTime.now,
updatedAt: DateTime = DateTime.now,
deletedAt: Option[DateTime] = None,
createdBy: Option[String] = None,
updatedBy: Option[String] = None)
格式化对象定义如下:
implicit lazy val geoAreaFormat: Format[GeoArea] = Json.format[GeoArea]
我遇到了一个错误:
在隐式范围中未找到play.api.libs.json.Format的实例,其类型参数为org.joda.time.DateTime、org.joda.time.DateTime、scala.Option[org.joda.time.DateTime](提示:如果在同一文件中声明,请确保在它之前声明)[error]
implicit lazy val geoAreaFormat: Format[GeoArea] = Json.format[GeoArea]
我缺少了什么?我需要在哪里添加其他内容以解决这个问题?
我的导入看起来像这样:
import driver.PGDriver.api._
import org.joda.time.DateTime
import play.api.libs.json._
import slick.lifted.Tag
import model.GeoAreas.Discriminator
import converters.{JsonEnumeration, SlickEnumeration}
迁移期间它们并未发生变化,但它们足以使一切正常工作。