2016-09-13 86 views
0

我在DAO的方法,它看起来像这样如何在MongoDB和Java中返回对象的ArrayList?

ProductDao.java

public List<Document> getAllProducts() { 
    return mongoCollection.find().into(new ArrayList<Document>()); 
} 

我想什么,而不是为

//return a list of Product instead of Document 
public List<Product> getAllProducts() { 
    return mongoCollection.find().into(new ArrayList<Product>()); 
} 

的pom.xml

<dependency> 
    <groupId>org.mongodb</groupId> 
    <artifactId>mongo-java-driver</artifactId> 
    <version>3.3.0</version> 
</dependency> 

我该如何做到这一点?

回答

1

很少有java的库,可以帮助你用它:

Morhpia - http://code.google.com/p/morphia/

春数据MongoDB的 - http://www.springsource.org/spring-data/mongodb

此外,你可以这样做:

public List<Product> getAllProducts() { 
    DBCursor cur = mongoCollection.find(); 
    List<Product> products = new ArrayList<Product>(); 
    while(cur.hasNext()) { 
     products.add(cur.next()); 
    } 
    return products; 
} 
+0

渴望尝试Morphia。看起来很有希望。它是MongoDB的子项目吗? – user2325154

+0

是的,它是一个子项目,Morphia建立在最初的mongodb java驱动程序之上。它就像一个包装它。 –

1

调查MongoJack

Mongojack将Java对象映射到MongoDB文档。基于杰克逊JSON映射器,Mongojack可以让您轻松处理您的mongo文档作为POJO

+0

看起来很有趣。感谢指针,Satish :) – user2325154