Фантомная точка в ключах карты, загруженная из mongodb - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть объект со следующими полями:

var name: String?,
var metadata: org.bson.Document?,
var things: Map<String, MyObject> = mapOf(),
var other_things: Map<String, MyObject> = mapOf(),
@Indexed(unique = true) var hash: String?

Ключи things и other_things являются хешами соответствующих им MyObject объектов.Хэши не содержат точек в них.Когда я сохраняю сущность - карты корректно сериализуются и сохраняются в mongodb.

Пример карты - взят прямо из моей консоли mongo (я замаскировал поля MyObject ...):

{
  "0xa5643bf27e2786816613d3eeb0b62650200b5a98766dfcfd4428f296fb56d043": {
    "field": true,
    "field1": [
      {
        "field1field": "foo",
        "field1field1": "",
        "field1field2": false
      }
    ],
    "field2": "sam",
    "field3": []
  },
  "0xfce353f601a3db60cb33e4b6ef4f91e4465eaf93c292b64fcde1bf4ba6819b6a": {
    "field": true,
    "field1": [
      {
        "field1field": "bash",
        "field1field1": "",
        "field1field2": true
      }
    ],
    "field2": "bar",
    "field3": []
  },
  "0xcdcd77c0992ec5bbfc459984220f8c45084cc24d9b6efed1fae540db8de801d2": {
    "field": true,
    "field1": [
      {
        "field1field": "mash",
        "field1field1": "",
        "field1field2": false
      }
    ],
    "field2": "baz",
    "field3": []
  }
}

Однако, когда я извлекаю сущность и печатаю ключи любой карты - к каждому ключу добавляется ., т. Е. Вывод println(entity.things.keys) равен

[.0xa5643bf27e2786816613d3eeb0b62650200b5a98766dfcfd4428f296fb56d043, .0xfce353f601a3db60cb33e4b6ef4f91e4465eaf93c292b64fcde1bf4ba6819b6a, .0xcdcd77c0992ec5bbfc459984220f8c45084cc24d9b6efed1fae540db8de801d2]

Я незнаете, что здесь происходит, может кто-то уточнить?

NB карты были ранее Map<String, String>, и у меня не было этой проблемы

EDIT Я изменил things и other_things на List<MySuperObject>, который имеет 2 поля типа String и MyObject, что немного меняет структуру в mongodb (он сохраняется как массив) - фантом .ушел - но это не отвечает на первоначальный вопрос ...

...