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... Публикация этого ответа, чтобы сэкономить кому-то еще пару часов своего времени.