我正在學習mongo db和Spring框架。 我相信mongodb的力量之一是消耗性結構,所以用戶可以輕鬆地添加或刪除成員數據。爲什麼用Spring數據mongo製作User VO?
但是,我發現很多用戶文檔的示例(使用@Document
,比如this)。如果像那個用戶那樣使用VO應該在字段添加或刪除時編譯java類,對吧?
我覺得人們用這種方式,因爲這種結構有一個點。我想知道爲什麼。對我來說,感覺更合適使用Map<String, Object>
來使用。
感謝您回答我的根本問題。
我正在學習mongo db和Spring框架。 我相信mongodb的力量之一是消耗性結構,所以用戶可以輕鬆地添加或刪除成員數據。爲什麼用Spring數據mongo製作User VO?
但是,我發現很多用戶文檔的示例(使用@Document
,比如this)。如果像那個用戶那樣使用VO應該在字段添加或刪除時編譯java類,對吧?
我覺得人們用這種方式,因爲這種結構有一個點。我想知道爲什麼。對我來說,感覺更合適使用Map<String, Object>
來使用。
感謝您回答我的根本問題。
你可以用下面的點找到了答案:
(1)通過映射與@Document
一個Value Object
,你可以代表一個Java對象(堆)中有document
內MongoDB
collection
(如User
, Product
等)。這就是所謂的Object to Document Mapping(ODM),你可以使用像Spring Data MongoDB,Hibernate OGM等這樣的框架。優點是通過使用ODM框架的強大功能來存儲/檢索文檔,而無需重新實現訪問數據庫的樣板代碼。
您可以在這一點上看看here關於Spring Data框架的功能,它可以輕鬆地存儲/檢索文檔。
如果您不遵守這個規定,您將最終在樣板代碼的整個Data Access Layer
。 (2)此外,對於每種類型的數據使用Map<String, Object>
都不符合OOP,因此您應該使用業務術語(如產品文檔,部門文檔等)來表示數據。
感謝您的回答。我明白了。 –