我有一个模型类
public class MyClass extends ReflectionDBObject { private Listattributes; ... } public class NiceAttribute extends ReflectionDBObject { ... }
我以类型安全的方式创建它,比如
Listattrs = new ArrayList (); attrs.add(new NiceAttribute()); MyClass myClass = new MyClass(); myClass.setAttributes(attrs);
然后将其保存到mongo,并使用类似的代码检索
DBCollection col = ...; col.setObjectClass(MyClass.class) MyClass foundObject = (MyClass)col.findOne();
但问题是,foundObject
的attributes
变成了一个列表BasicDBObject
.看起来驱动程序不能(或不想)检测列表项类型.这是司机限制,还是我错过了什么?这个问题的优雅解决方案是什么?
顺便说一句,我知道Morphia等.也许它解决了这个问题.但是我的项目很小,而且我不想让具有更多抽象层的东西复杂化.