Привет, ребята, у меня проблема, я не могу сериализовать свойства BaseEntity для mongodb, он только сериализует (адрес электронной почты, имя, пароль) и создает поле _id.Playframework JSON Inheritance
Вот код:
trait Entity[K] {
val id: K
val createDate: DateTime
val updateDate: DateTime
}
class BaseEntity extends Entity[String] {
val id: String = java.util.UUID.randomUUID.toString
val createDate: DateTime = new DateTime(DateTimeZone.UTC)
val updateDate: DateTime = new DateTime(DateTimeZone.UTC)
}
case class User(name: String, email: String, password: String) extends BaseEntity
object User {
implicit val jsonFormat = Json.format[User]
}
#ReactiveMongo to insert the document
def create(entity: E)(implicit ec: ExecutionContext): Future[Option[E]] = {
val doc = Json.toJson(entity).as[JsObject]
this.collection.flatMap(_.insert(doc)).flatMap(_ => Future.successful(Option(entity)))
}
Как указано в [требования] (https://www.playframework.com/documentation/ 2.5.x/ScalaJsonAutomated # Requirements) для воспроизведения JSON, автоматическое сопоставление основано на функциях 'apply' /' unapply', а не на произвольном 'val' /' def'. Отображаются только параметры «apply». – cchantep