Зачем делать User VO с Spring data mongo?
Я изучаю монго БД и Spring Framework. Я считаю, что одной из сильных сторон mongodb является структура расходных материалов, поэтому пользователь может легко добавлять или удалять данные участника.
Тем не менее, я нашел много примеров с документом пользователя (с @Document
вот так). Если использовать VO как этот, пользователь должен скомпилировать класс java всякий раз, когда поле добавляет или удаляет, верно?
Я думаю, что люди используют этот способ, поскольку такая структура имеет смысл. Я хочу знать почему. Для меня это более подходящее использование Map<String, Object>
использовать.
Спасибо за ответ на мой фундаментальный вопрос.
1 ответ
Вы можете найти ответ с помощью следующих пунктов:
(1) сопоставляя Value Object
с @Document
, вы можете представить объект Java (в куче) с document
внутри MongoDB
collection
(лайк User
, Product
и т. д.), который называется сопоставлением объектов и документов (ODM), и для этого можно использовать такие среды, как Spring Data MongoDB, Hibernate OGM и т. д. Преимущество состоит в том, чтобы хранить / извлекать документы с использованием возможностей платформ ODM без повторной реализации стандартного кода для доступа к базе данных.
Здесь вы можете взглянуть на этот момент на особенности Spring Data Framework, и он позволяет легко хранить / извлекать документы.
Если вы не будете следовать этому, вы в конечном итоге будете реализовывать шаблонный код для всего Data Access Layer
,
(2) Кроме того, используя Map<String, Object>
для каждого типа данных против OOP, поэтому вы должны представлять данные с вашими бизнес-терминами (например, документ продукта, документ отдела и т. д.).