Как получить правильно введенный Список от ReflectionDBObject

У меня есть образцовые классы как

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, я знаю о морфие и т.д. Возможно, это решает проблему. Но мой проект является крошечным, и я не хочу усложнять вещи, имеющие еще один слой абстракции.

5
задан zamza 21 July 2010 в 00:49
поделиться