我使用Mongo与本地Java驱动程序(没有第三方库/ ORM)。我有这样的:Mongo ReflectionDBObject将所有嵌入数组的元素映射到一个类;
public class Release extends ReflectionDBObject {
//other fields omitted
private List<ReleaseDetailsByTerritory> releaseDetailsByTerritory = new ArrayList<ReleaseDetailsByTerritory>();
}
public class ReleaseDetailsByTerritory extends ReflectionDBObject { //...}
如果我想检索具有两个“ReleaseDetailsByTerritory”条目的“释放”项,并在包含两个ReleaseDetailsByTerritory类实例列表的发布类的实例它们自动实例化,我有要做到这一点:
releaseColl.setObjectClass(Release.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.0", ReleaseDetailsByTerritory.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.1", ReleaseDetailsByTerritory.class);
Release r = (Release) releaseColl.findOne();
即我需要专门映射嵌入式数组的每个潜在元素到相应的类。
有没有办法来告诉我希望所有的司机蒙戈和嵌入式阵列中的任何元素映射到某一类?例如:
collection.setInternalClass("ReleaseDetailsByTerritory.*", ReleaseDetailsByTerritory.class);
?
谢谢。请不要说“使用Spring MondoDb模块或Morphia”。我想知道这是否可以用Mongo本地Java驱动程序实现。
查看源代码,我不认为这是可能的。我假设你尝试传递“ReleaseDetailsByTerritory”?那么,没有.0或。*? – 2012-01-13 12:52:07
是的,我试着传递“ReleaseDetailsByTerritory”,它不起作用。我认为你是对的,我也只是看到了消息来源,这就是那里的一切。如果你想让你的评论成为答案,我会让它成为“选择答案”。如果没有,我会自己回答(2天内)。 – 2012-01-13 14:08:12