Предположим, у меня есть следующий абстрактный базовый класс:
package Models
import reactivemongo.bson.BSONObjectID
abstract class RecordObject {
val _id: String = BSONObjectID.generate().stringify
}
Который расширяется следующим классом конкретных случаев:
package Models
case class PersonRecord(name: String) extends RecordObject
Затем я пытаюсь получить строку JSON, используя следующий код:
import io.circe.syntax._
import io.circe.generic.auto._
import org.http4s.circe._
// ...
val person = new PersonRecord(name = "Bob")
println(person._id, person.name) // prints some UUID and "Bob"
println(person.asJso) // {"name": "Bob"} -- what happened to "_id"?
Как видите, свойство _id: String
, унаследованное от RecordObject
, отсутствует. Я ожидаю, что встроенный кодировщик должен нормально работать для этого варианта использования. Мне действительно нужно построить свой собственный?