我想使用MongoDB Java驱动程序(v3.4.2)和Morphia(v 1.3.2)将包含通用列表的通用对象映射到MongoDB,如下所示:
public class KPI<T> {
public ArrayList<T> kpiList;
}
我用过
Morphia morphia = new Morphia();
morphia.map(KPI.class);
映射该类,当我尝试使用
将名为 someKPIObject 对象的KPI实例添加到Mongodb时MongoClient mongoClient = new MongoClient(addr);
AdvancedDatastore datastore = (AdvancedDatastore) morphia.createDatastore(mongoClient, "myDB");
datastore.insert(myDoc,someKPIObject);
我收到以下错误:
警告:参数化类型被视为无类型对象。见字段 &#39; kpiList&#39;关于KPI课程 org.mongodb.morphia.mapping.MappingException: 错误映射字段:KPI.kpiList at org.mongodb.morphia.mapping.Mapper.toDBObject(Mapper.java:984)at at org.mongodb.morphia.mapping.Mapper.toDBObject(Mapper.java:593)at at org.mongodb.morphia.DatastoreImpl.entityToDBObj(DatastoreImpl.java:1362) 在org.mongodb.morphia.DatastoreImpl.insert(DatastoreImpl.java:1227) 在org.mongodb.morphia.DatastoreImpl.insert(DatastoreImpl.java:1046) 在mongoconnector.MongoConnector.AddNewEntry(MongoConnector.java:97) 在Parser.main(Parser.java:31)
引起: java.lang.RuntimeException:Generic TypeVariable不受支持! at org.mongodb.morphia.mapping.MappedField.toClass(MappedField.java:639) 在 org.mongodb.morphia.mapping.MappedField.getSubClass(MappedField.java:313) 在 org.mongodb.morphia.mapping.EmbeddedMapper.shouldSaveClassName(EmbeddedMapper.java:29) 在 org.mongodb.morphia.mapping.EmbeddedMapper.writeCollection(EmbeddedMapper.java:242) 在 org.mongodb.morphia.mapping.EmbeddedMapper.toDBObject(EmbeddedMapper.java:90) 在 org.mongodb.morphia.mapping.Mapper.writeMappedField(Mapper.java:876) 在org.mongodb.morphia.mapping.Mapper.toDBObject(Mapper.java:982) ......还有6个
我做错了什么,甚至可能吗?我使用Java 1.8。