doo*_*ork 1 java classcastexception morphia
我正在尝试将Morphia用于一个项目,但是在保存实体时遇到了一些麻烦。我发现实体定义有问题,因此尝试了他们网站上提供的定义,并抛出了此异常。我检查了mongo,一切似乎都很好。正在创建集合,并且似乎有记录。
我开始进行一个简单的JUnit测试,但它不会超越datastore.save(e):
package com.wtf.data;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
import com.google.code.morphia.annotations.Entity;
import com.google.code.morphia.annotations.Id;
import com.google.code.morphia.emul.org.bson.types.ObjectId;
import com.mongodb.Mongo;
import org.junit.Test;
import java.net.UnknownHostException;
public class MorphiaTest {
@Entity
class MyEntity {
@Id
ObjectId id;
String name;
}
@Test
public void save() {
Mongo mongo = null;
try {
mongo = new Mongo("127.0.0.1", 27017);
} catch (UnknownHostException e) {
e.printStackTrace();
}
Morphia morphia = new Morphia();
morphia.map(MyEntity.class);
Datastore datastore = morphia.createDatastore(mongo, "MorphiaTest");
datastore.ensureIndexes();
MyEntity e = new MyEntity();
datastore.save(e);
}
}
Run Code Online (Sandbox Code Playgroud)
java.lang.RuntimeException:java.lang.ClassCastException:org.bson.types.ObjectId无法在com.google.code.morphia.mapping.EmbeddedMapper.fromDBObject(EmbeddedMapper.java:149)处转换为com.mongodb.DBObject com.google.code.morphia.mapping.Mapper.updateKeyInfo(Mapper.java:228)的com.google.code.morphia.mapping.Mapper.readMappedField(Mapper.java:433)。 com.google.code.morphia.DatastoreImpl.postSaveGetKey(DatastoreImpl.java:683)com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:734)的DatastoreImpl.postSaveOperations(DatastoreImpl.java:886) com.wtf.data.MorphiaTest.save(MorphiaTest.java)上com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:796)上的.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:802) :41)
我究竟做错了什么?
尝试更换
import com.google.code.morphia.emul.org.bson.types.ObjectId;
Run Code Online (Sandbox Code Playgroud)
与
import org.bson.types.ObjectId;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9459 次 |
| 最近记录: |