Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Morphia错误:Morphia类型中的fromDBObject(Class<;T>;,BasicDBObject)方法不适用于参数(Class<;Suite>;,DBObject)_Java_Mongodb_Spring Mvc_Morphia - Fatal编程技术网

Java Morphia错误:Morphia类型中的fromDBObject(Class<;T>;,BasicDBObject)方法不适用于参数(Class<;Suite>;,DBObject)

Java Morphia错误:Morphia类型中的fromDBObject(Class<;T>;,BasicDBObject)方法不适用于参数(Class<;Suite>;,DBObject),java,mongodb,spring-mvc,morphia,Java,Mongodb,Spring Mvc,Morphia,我编写了一个代码,其中包含套件信息和嵌入其中的测试用例信息。我编写了TestCase.java和Suite.java,它们似乎没有错误。但是使用我编写的MongoMapper.java,我得到了这个错误。 Morphia类型中的fromDBObject(Class,BasicDBObject)方法不适用于参数(Class,DBObject)。请帮助我解决这个问题,并建议我如何查看是否在MongoDB Shell中更新了我的集合。提前感谢。这是我的代码 package com.DrAssist.M

我编写了一个代码,其中包含套件信息和嵌入其中的测试用例信息。我编写了TestCase.java和Suite.java,它们似乎没有错误。但是使用我编写的MongoMapper.java,我得到了这个错误。 Morphia类型中的fromDBObject(Class,BasicDBObject)方法不适用于参数(Class,DBObject)。请帮助我解决这个问题,并建议我如何查看是否在MongoDB Shell中更新了我的集合。提前感谢。这是我的代码

package com.DrAssist.Morphia.model;
import com.google.code.morphia.Morphia;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.net.UnknownHostException;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;

public class MongoMapper {
    Morphia morph;
    Mongo mongo;
    DBCollection DrAssistReport;
    @Before
    public void setUp() throws UnknownHostException {
    morph = new Morphia();
    mongo = new Mongo("127.0.0.1", 27017);
    // This is where we map Persons and addresses
    // But shouldn't the annotation be able to handle that?
    morph.map(Suite.class).map(TestCase.class);
    DB testDb = mongo.getDB( "test" );
    DrAssistReport = testDb.getCollection("DrAssistReport");
    }

    @Test
    public void storePersonThroughMorphiaMapping () {

    Suite suite = new Suite(new TestCase("1",new String[]{"Test1", "Test2", "Test3", "Test4"},"1","5","6","7","889"));
    suite.setSID("1");
    suite.setsuiteName("Suite1");
    suite.setnoOfTests("5");


    DrAssistReport.save(morph.toDBObject(suite));
    Suite suite2 = morph.fromDBObject(Suite.class, DrAssistReport.findOne());
    assertNotNull(suite2.getSID());



    }
}

我得到的错误是Morphia类型中的DBObject(Class,BasicDBObject)方法不适用于参数(Class,DBObject)

看起来您正在使用此更改之前的Morphia版本:

您可以尝试将返回值从DrAssistReport.findOne()强制转换为“BasicDBObject”,或者将正在使用的Morphia的verison升级为Morphia.fromDBObject方法采用DBObject而不需要BasicDBObject的版本