Зачем делать User VO с Spring data mongo?

Я изучаю монго БД и Spring Framework. Я считаю, что одной из сильных сторон mongodb является структура расходных материалов, поэтому пользователь может легко добавлять или удалять данные участника.

Тем не менее, я нашел много примеров с документом пользователя (с @Documentвот так). Если использовать VO как этот, пользователь должен скомпилировать класс java всякий раз, когда поле добавляет или удаляет, верно?

Я думаю, что люди используют этот способ, поскольку такая структура имеет смысл. Я хочу знать почему. Для меня это более подходящее использование Map<String, Object> использовать.

Спасибо за ответ на мой фундаментальный вопрос.

1 ответ

Решение

Вы можете найти ответ с помощью следующих пунктов:

(1) сопоставляя Value Object с @Document, вы можете представить объект Java (в куче) с document внутри MongoDBcollection (лайк User, Product и т. д.), который называется сопоставлением объектов и документов (ODM), и для этого можно использовать такие среды, как Spring Data MongoDB, Hibernate OGM и т. д. Преимущество состоит в том, чтобы хранить / извлекать документы с использованием возможностей платформ ODM без повторной реализации стандартного кода для доступа к базе данных.

Здесь вы можете взглянуть на этот момент на особенности Spring Data Framework, и он позволяет легко хранить / извлекать документы.

Если вы не будете следовать этому, вы в конечном итоге будете реализовывать шаблонный код для всего Data Access Layer,

(2) Кроме того, используя Map<String, Object> для каждого типа данных против OOP, поэтому вы должны представлять данные с вашими бизнес-терминами (например, документ продукта, документ отдела и т. д.).

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