Scala MongoDB, переопределить кодек для записи / чтения Array [Byte] - PullRequest
0 голосов
/ 15 января 2019

Я использую http://mongodb.github.io/mongo-scala-driver/

Я определяю кодек для одного CC.

 lazy val userInfoCodec: Codec[UserInfo] = new Codec[UserInfo] {

    override def encode(writer: BsonWriter, value: UserInfo, encoderContext: EncoderContext): Unit = ???
    override def decode(reader: BsonReader, decoderContext: DecoderContext): UserInfo = ???
}

Внутри я делаю шифрование, поэтому поля вместо того, чтобы быть строками, являются массивом [байтов]. Знаете ли вы, как использовать BsonWriter для записи туда байтового массива? Я видел некоторые вещи, как writeStartArray, но я не понимаю, как его использовать.

Спасибо за помощь!

1 Ответ

0 голосов
/ 16 января 2019
case class UserInfo(ab: Array[Byte])

val userInfoCodec: Codec[UserInfo] = new Codec[UserInfo] {
  override def getEncoderClass: Class[UserInfo] = classOf[UserInfo]

  override def encode(writer: BsonWriter, value: UserInfo, encoderContext: EncoderContext): Unit = {
    val bsonBinary = new BsonBinary(value.ab)
    writer.writeBinaryData(bsonBinary)
  }



  override def decode(reader: BsonReader, decoderContext: DecoderContext): UserInfo = {
    val bsonBinary = reader.readBinaryData()
    UserInfo(bsonBinary.getData)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...