#java #spring #mongodb #spring-data-mongodb
#java #весна #mongodb #spring-data-mongodb
Вопрос:
Я видел много кода, определяющего объекты домена для 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
аннотацию?
Ответ №1:
В документации Spring говорится:
7.3. Сопоставление на основе метаданных
Чтобы в полной мере использовать функциональность сопоставления объектов внутри поддержки Spring Data / MongoDB, вы должны аннотировать свои сопоставленные объекты с помощью @org.springframework.data.mongodb.core.mapping .Аннотация документа. Хотя для структуры сопоставления необязательно иметь эту аннотацию (ваши POJO будут правильно отображены даже без каких-либо аннотаций), это позволяет сканеру путей к классам находить и предварительно обрабатывать объекты вашего домена для извлечения необходимых метаданных. Если вы не используете эту аннотацию, ваше приложение получит небольшое снижение производительности при первом сохранении объекта домена, потому что платформе сопоставления необходимо создать свою внутреннюю модель метаданных, чтобы она знала о свойствах вашего объекта домена и о том, как их сохранить.
https://docs.spring.io/spring-data/data-document/docs/current/reference/html/