Spring Boot, MongoDB: поля во встроенных документах переименовываются

У меня есть один основной документ:

@Document
public class MainDocument {
    private String name;
    private String desc;
    private List<Nested> nestedList;
    -- More fields/methods --
}

и документ встраивается:

@Document
public class Nested {
    private String nestedUser;
    private String nestedTitle;
    -- More fields/methods --
}

При попытке сохранить новый экземпляр класса Nested в List<Nested>поля класса Nested переименовываются. Например, nestedTitle становится title, Это не будет большим делом, за исключением того факта, что он не позволяет мне устанавливать значение некоторых переименованных полей.

Я пытался использовать @Field("field_name") аннотации, но поля все равно будут переименованы и будут игнорировать попытки установить их значение.

Что будет причиной переименования некоторых полей? Я что-то пропустил? Около половины полей переименовывается, а остальные остаются с правильным именем...

Я тестирую с помощью POSTMAN для отправки запросов JSON на контроллер для основного документа. Даже если я использую новое имя поля в запросе JSON, значение все равно не будет установлено.

1 ответ

Решение

Догадаться...

Метод получения nestedTitle был назван getTitle() поэтому оно переименовывало его на основе имени метода получения. Изменился на getNestedTitle() и перестал переименовываться. Изменены другие методы получения для рассматриваемых полей, и теперь все работает как положено.

Не уверен, почему он будет переименовывать поле на основе имени метода, но кто я такой, чтобы судить о Spring... Публикация этого ответа, чтобы сэкономить кому-то еще пару часов своего времени.

Другие вопросы по тегам