У меня есть образцовые классы как
public class MyClass extends ReflectionDBObject {
private List<NiceAttribute> attributes;
...
}
public class NiceAttribute extends ReflectionDBObject {
...
}
Я создаю его безопасным с точки зрения типов способом, как
List<NiceAttribute> attrs = new ArrayList<NiceAttribute>();
attrs.add(new NiceAttribute());
MyClass myClass = new MyClass();
myClass.setAttributes(attrs);
затем сохраните его к монго и получите с кодом как
DBCollection col = ...;
col.setObjectClass(MyClass.class)
MyClass foundObject = (MyClass)col.findOne();
Но проблема - это foundObject
attributes
становится списком BasicDBObject
. Похож на драйвер, не может (или не хотеть к), обнаруживают тип элементов списка. Действительно ли это - ограничение драйвера, или я пропустил что-то? Каково было бы изящное обходное решение для проблемы?
BTW, я знаю о морфие и т.д. Возможно, это решает проблему. Но мой проект является крошечным, и я не хочу усложнять вещи, имеющие еще один слой абстракции.