为什么使用 Spring 数据 mongo 制作用户 VO?
Why make User VO with Spring data mongo?
我正在研究 mongo 数据库和 Spring 框架。
我相信 mongodb 的优势之一是可扩展结构,因此用户可以轻松添加或删除成员数据。
但是,我在用户文档中找到了很多示例(@Document
like this)。如果使用 VO 这样的用户应该在字段添加或删除时编译 java class,对吗?
我认为人们使用这种方式,因为这种结构是有道理的。我想知道为什么。对我来说,感觉用Map<String, Object>
更适合用。
感谢您回答我的基本问题。
您可以通过以下几点找到答案:
(1) 通过将 Value Object
映射到 @Document
,您可以用 MongoDB
中的 document
表示一个 java 对象(在堆中) =] collection
(如 User
、Product
等)称为 对象到文档映射 (ODM),您可以使用 [=38= 这样的框架] Data MongoDB,Hibernate OGM,等等。优点是 store/retrieve 通过使用 ODM 框架的强大功能来生成文档,而无需重新实现用于访问数据库的样板代码。
您可以查看 here 关于 Spring 数据框架功能的这一点,它可以轻松地 store/retrieve 文档。
如果您不遵循这一点,您将最终为整个 Data Access Layer
.
重新实现 样板代码
(2) 此外,对每种类型的数据使用 Map<String, Object>
是违反 OOP 的,因此您应该使用业务术语(如产品文档、部门文档等)来表示数据。 .
我正在研究 mongo 数据库和 Spring 框架。 我相信 mongodb 的优势之一是可扩展结构,因此用户可以轻松添加或删除成员数据。
但是,我在用户文档中找到了很多示例(@Document
like this)。如果使用 VO 这样的用户应该在字段添加或删除时编译 java class,对吗?
我认为人们使用这种方式,因为这种结构是有道理的。我想知道为什么。对我来说,感觉用Map<String, Object>
更适合用。
感谢您回答我的基本问题。
您可以通过以下几点找到答案:
(1) 通过将 Value Object
映射到 @Document
,您可以用 MongoDB
中的 document
表示一个 java 对象(在堆中) =] collection
(如 User
、Product
等)称为 对象到文档映射 (ODM),您可以使用 [=38= 这样的框架] Data MongoDB,Hibernate OGM,等等。优点是 store/retrieve 通过使用 ODM 框架的强大功能来生成文档,而无需重新实现用于访问数据库的样板代码。
您可以查看 here 关于 Spring 数据框架功能的这一点,它可以轻松地 store/retrieve 文档。
如果您不遵循这一点,您将最终为整个 Data Access Layer
.
(2) 此外,对每种类型的数据使用 Map<String, Object>
是违反 OOP 的,因此您应该使用业务术语(如产品文档、部门文档等)来表示数据。 .