У меня есть класс WebIntegration, в котором у меня есть поле "f", которое является Map [FeatureType, Feature].Обычные поля enum сохраняются правильно, но когда у меня есть ключ в качестве enum на карте, он сохраняется в двойных кавычках
Это код, который я использую:
SimpleMongoDbFactory simpleMongoDbFactory = new SimpleMongoDbFactory(mongoClient, "test_database");
MongoTemplate mongoTemplate = new MongoTemplate(simpleMongoDbFactory);
Integration integration = //integration;
mongoTemplate.save(integration);
Документ сохраняется таким образом:
{
"_id" : ObjectId("5bc5855b610be4b5e225f422"),
"_class" : "com.demo.WebIntegration",
"ttl" : "Elixir",
"iT" : "web_integration",
"f" : {
""page_feature"" : {
"iGW" : false,
"isSV" : false,
"iFCT" : "page_feature",
"e" : true,
"_class" : "com.demo.WebIntegrationPageFeature"
},
"a" : true,
"cTm" : NumberLong("1539686608262"),
"uTm" : NumberLong("1539686608262"),
"iD" : false
}
То же самое перечисление используется в поле "iFCT", которое сохраняется правильно, но ключ в поле "f" сохраняется в двойных кавычках.
Из-за этого во время выборки онпрерывается, потому что нет перечисления, такого как page_feature с кавычками.
Если я регистрирую пользовательские конвертеры, это работает отлично.Но я хотел знать, если нормальные поля сохранены правильно, то почему ключи карты не сохраняются должным образом, если они являются enum.
Я что-то упустил?