Mongodb 的ORM框架 Morphia 之 使用Morphia(映射對象) .

  Mapping Objects(映射對象)

           我們一旦註解了我們的對象,將有很大繁重的工作要做。現在我們要做的就是需要創建一個Morphia實例,告訴Morphia我們要映射那些類,然後我們就可以

     開始在Mongo文檔和Java對象之間映射了。

             Create a Morphia instance(創建一個Morphia實例)

                  首先你要做的就是創建一個Morphia實例,並且告訴他你要映射的類。建議你僅創建一次Morphia實例,重複使用。

                    

  1. import com.google.code.morphia.Morphia;  
  2. ...  
  3. Morphia morphia = new Morphia();  
  4. morphia.map(BlogEntry.class)  
  5.     .map(Author.class);  
  6. ...  

           你映射的任何一個類都將會進行驗證,如果由於某些原因你映射的類不合法將會拋出一個MappingException異常。

           你也可以告訴Morphia去掃描一個包,映射包中的所有類。

           

  1. ...  
  2. morphia.mapPackage("my.package.with.only.mongo.entities");  
  3. ...  
        Advanced Usage(高級應用)

               手動的使用Morphia映射到DBObjects通過java驅動直接進行交互。一下是一些如何使用他的實例。

         Mapping a java for Persistence

              手動的使用Morphia映射到DBObjects通過java驅動直接進行交互。這是一個實例。

           讓我們說我們有一個博客實例對象,我們想把它保存到Mongo數據庫中的一個容器中。我們僅僅調用Morphia中的toDBObject()方法,把java對象傳入。

           我們可以把返回的DBObject對象直接保存到Mongo中。

               

  1. Morphia morphia = ...;  
  2. Mongo mongo = ...;  
  3. DB db = mongo.getDB("BlogSite");  
  4.   
  5. BlogEntry blogEntry = ...; // this is our annotated object   
  6.   
  7. // map the blog entry to a Mongo DBObject   
  8. DBObject blogEntryDbObj = morphia.toDBObject(blogEntry);  
  9.   
  10. // and then save that DBObject in a Mongo collection   
  11. db.getCollection("BlogEntries").save(blogEntryDbObj);  
    現在我們的博客實例對象已經保存到了Mongo中。

       Retrieving a java from MongoDB(從Mongo中回覆一個Java對象)

         現在讓我們看看另一個方法:創建一個Java對象從Mongo數據庫中的一個文檔。這也非常簡單。我們僅僅調用Morphia中的fromDBObject()方法即可,傳入要返回的DBObject對象。

          

  1. Morphia morphia = ...;  
  2. Mongo mongo = ...;  
  3. DB db = mongo.getDB("BlogSite");  
  4.   
  5. String blogEntryId = ...; // the ID of the blog entry we want to load   
  6.   
  7. // load the DBObject from a Mongo collection   
  8. BasicDBObject blogEntryDbObj = (BasicDBObject) db.getCollection("BlogEntries").findOne(new BasicDBObject("_id"new ObjectId(blogEntryId));  
  9.   
  10. // and then map it to our BlogEntry object   
  11. BlogEntry blogEntry = morphia.fromDBObject(BlogEntry.class, blogEntryDbObj);  
  就是這樣!Morphia移除了所有的容易出錯的代碼,你需要手動的映射到/從你的Java對象。

  使用Morphia管理你的Mongdo中的Java對象的非常清楚的方法是使用DAO 支持。那個方法抽象Mongo和Morphia在一個數據訪問對象(DAO)內部,所以你的業務邏輯不用依賴Morphia。

     原文鏈接:http://code.google.com/p/morphia/wiki/MappingObjects

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章