Я видел много кода, определяющего объекты домена для MongoDB следующим образом:
с пустой аннотацией @Document:
@Document
class Customer {
int id;
String name;
}
без аннотации @Document
:
class Customer {
int id;
String name;
}
с названием коллекции:
@Document(collection = "cust")
class Customer {
int id;
String name;
}
Я могу понять последние два, но почему вы хотите оставить только аннотацию @Document
?
В документации Spring говорится:
7.3. Отображение на основе метаданных
Чтобы в полной мере воспользоваться функциональностью сопоставления объектов внутри Поддержка Spring Data/MongoDB, вы должны аннотировать свои сопоставленные объекты с @org.springframework.data.mongodb.core.mapping.Document аннотация. Хотя нет необходимости, чтобы структура отображения иметь эту аннотацию (ваши POJO будут отображаться правильно, даже без каких-либо аннотаций), он позволяет сканеру classpath находить и предварительно обработайте объекты домена, чтобы извлечь необходимые метаданные. Если вы не используете эту аннотацию, ваше приложение займет небольшое производительность снижается при первом сохранении объекта предметной области, поскольку Платформа отображения должна построить свою внутреннюю модель метаданных, чтобы она знает о свойствах вашего объекта домена и о том, как сохранить их.
https://docs.spring.io/spring-data/data-document/docs/current/reference/html/