1

テストケース情報が埋め込まれたスイート情報を含むコードを記述しました。TestCase.javaとSuite.javaを記述しましたが、エラーはないようです。しかし、記述したMongoMapper.javaを使用すると、これを取得できます。エラー。Morphia型のメソッドfromDBObject(Class、BasicDBObject)は、引数(Class、DBObject)には適用できません。MongoDBシェルでコレクションが更新されているかどうかを確認する方法を教えてください。ありがとうございます。これが私のコードです。

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型のメソッドfromDBObject(Class、BasicDBObject)は、引数(Class、DBObject)には適用できません。

4

1 に答える 1

0

この変更前のバージョンのMorphiaを使用しているようです:http ://code.google.com/p/morphia/issues/detail?id = 15

DrAssistReport.findOne()からの戻り値を「BasicDBObject」にキャストするか、使用しているMorphiaのバージョンを、BasicDBObjectを必要とせずにMorphia.fromDBObjectメソッドがDBObjectを受け取るバージョンにアップグレードしてみてください。

于 2012-08-14T02:39:53.437 に答える