Java 如何将数据库对象从MongoDB检索到自定义类?
在我的项目中,我创建了一个名为ClickScoreTuple的类,它扩展了BasicDBObject。(否则将出现可序列化问题) 然后,我使用下面的代码插入ClickScoreTupleJava 如何将数据库对象从MongoDB检索到自定义类?,java,mongodb,classcastexception,Java,Mongodb,Classcastexception,在我的项目中,我创建了一个名为ClickScoreTuple的类,它扩展了BasicDBObject。(否则将出现可序列化问题) 然后,我使用下面的代码插入ClickScoreTuple public void insertToMongodb(String q, ClickScoreTuple cs){ BasicDBObject doc = new BasicDBObject(); doc.put("query", q); doc.put("clicks", cs);
public void insertToMongodb(String q, ClickScoreTuple cs){
BasicDBObject doc = new BasicDBObject();
doc.put("query", q);
doc.put("clicks", cs);
coll.insert(doc);
}
并使用下面的代码从MongoDB检索数据
public ClickScoreTuple retrieveFromMongodb(String q){
BasicDBObject query = new BasicDBObject();
query.put("query", q);
DBCursor cursor = coll.find(query);
**ClickScoreTuple result = (ClickScoreTuple) cursor.next();**
cursor.close();
return result;
}
然而,我遇到了这样的问题:
Exception in thread "main" java.lang.ClassCastException: com.mongodb.BasicDBObject cannot be cast to ClickScoreTuple
at MongoDBManager.retrieveFromMongodb(MongoDBManager.java:50)
at UserLogHistoryProcessor.processLogHistory(UserLogHistoryProcessor.java:30)
at UserLogHistoryProcessor.main(UserLogHistoryProcessor.java:108)
有人知道怎么解决这个问题吗?父母可以引用孩子,但反之亦然。您必须将
DBObject
手动映射到ClickScoreTuple
作为DBCursor。next()
方法未编码以返回您的子对象。父对象可以保留对子对象的引用,反之亦然。您必须将DBObject
手动映射到ClickScoreTuple
作为DBCursor。next()
方法未编码以返回您的子对象。您需要设置对象类类型。。。。在保存和检索对象之前使用的方法。。。。对你来说,应该是这样--
coll.setObjectClass(单击ScoreTuple.class)您需要设置对象类类型。。。。在保存和检索对象之前使用的方法。。。。对你来说,应该是这样-- coll.setObjectClass(单击ScoreTuple.class)强>