简体   繁体   English

如何将从MongoDB检索到的DBObject强制转换为定制类?

[英]How cast DBObject retrieved from MongoDB to customized class?

In my project, I make a class called ClickScoreTuple which extends BasicDBObject. 在我的项目中,我创建了一个名为ClickScoreTuple的类,该类扩展了BasicDBObject。 (Otherwise it will have Serielizable problem). (否则它将出现Serielizable问题)。

Then, I use the below code to insert a ClickScoreTuple 然后,我使用以下代码插入ClickScoreTuple

public void insertToMongodb(String q, ClickScoreTuple cs){

    BasicDBObject doc = new BasicDBObject();
    doc.put("query", q);
    doc.put("clicks", cs);
    coll.insert(doc);
}

And use the below code to retrieve data from MongoDB. 并使用以下代码从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;
}

However, I get such problem: 但是,我遇到这样的问题:

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)

Does anyone know hoe to solve it? 有谁知道头解决吗?

You need to set the Object Class type.... Use setObjectClass method of DBCollection before saving and retrieving the object .... In your case, it should be -- 您需要设置对象类类型。...在保存和检索对象之前,请使用DBCollection的 setObjectClass方法。

coll.setObjectClass(ClickScoreTuple.class); coll.setObjectClass(ClickScoreTuple.class);

Parent can hold a reference to child but not vice versa. 父母可以提及孩子,反之亦然。 You have to map DBObject manually to ClickScoreTuple as the DBCursor.next() method was not coded to return your child. 你必须映射DBObject手动ClickScoreTuple作为DBCursor.next()方法不编码来回报您的孩子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从Java,MongoDB中的dbobject获取属性中的aa属性 - How to get a a property in a property from a dbobject in java, mongodb 从Mongo读取而不是读取DBObject时如何转换为Model对象? - How to cast to your Model object at reading from Mongo instead reading DBObject? 从MongoDB检索值时将DBObject转换为Java对象 - Converting DBObject to Java Object while retrieve values from MongoDB MongoDB Java:如何在DBObject中表示$ in查询? - MongoDB Java: How can I represent $in query in DBObject? java.lang.ClassCastException:org.bson.types.ObjectId无法转换为com.mongodb.DBObject - java.lang.ClassCastException: org.bson.types.ObjectId cannot be cast to com.mongodb.DBObject 如何为从Firestore检索的数据分配Class? - How to assign Class to data retrieved from Firestore? 如何检索DBObject的架构? - How to retrieve the schema of a DBObject? 为什么会出现此异常 - java.lang.ClassCastException:java.lang.String无法强制转换为com.mongodb.DBObject - Why has this exception started occurring - java.lang.ClassCastException: java.lang.String cannot be cast to com.mongodb.DBObject 如何将从mongodb检索的整数值打印到jtable中? - how to print integer value retrieved from mongodb into jtable? Morphia java.util.Arrays$ArrayList 在进行 Projection.projection 时无法转换为 com.mongodb.DBObject - Morphia java.util.Arrays$ArrayList cannot be cast to com.mongodb.DBObject when making a Projection.projection
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM