Я использую Mongo с собственным драйвером Java (без сторонней библиотеки / ORM). У меня есть это:
public class Release extends ReflectionDBObject {
//other fields omitted
private List<ReleaseDetailsByTerritory> releaseDetailsByTerritory = new ArrayList<ReleaseDetailsByTerritory>();
}
public class ReleaseDetailsByTerritory extends ReflectionDBObject { //...}
Если я хочу получить запись «Release», имеющую две записи «ReleaseDetailsByTerritory», и автоматически создать их в экземпляре класса Release, содержащем список из двух экземпляров класса ReleaseDetailsByTerritory, я должен сделать это:
releaseColl.setObjectClass(Release.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.0", ReleaseDetailsByTerritory.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.1", ReleaseDetailsByTerritory.class);
Release r = (Release) releaseColl.findOne();
т.е. Мне нужно специально сопоставить каждый потенциальный элемент встроенного массива с соответствующим классом.
Есть ли способ сообщить драйверу Mongo, что я хочу, чтобы все и любой элемент встроенного массива были сопоставлены определенному классу? Что-то вроде:
collection.setInternalClass("ReleaseDetailsByTerritory.*", ReleaseDetailsByTerritory.class);
Спасибо. И, пожалуйста, не говорите «используйте модуль Spring MondoDb или Morphia». Я хочу знать, достижимо ли это с помощью встроенного в Java драйвера Java.