I use Mongo with native Java driver (no 3rd party library/ORM). I have this:
public class Release extends ReflectionDBObject {
//other fields omitted
private List<ReleaseDetailsByTerritory> releaseDetailsByTerritory = new ArrayList<ReleaseDetailsByTerritory>();
}
public class ReleaseDetailsByTerritory extends ReflectionDBObject { //...}
If I want to retrieve a "Release" entry having two "ReleaseDetailsByTerritory" entries, and have them auto-instanciated in a Release class instance containing a List of two ReleaseDetailsByTerritory class instances, I have to do this:
releaseColl.setObjectClass(Release.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.0", ReleaseDetailsByTerritory.class);
releaseColl.setInternalClass("ReleaseDetailsByTerritory.1", ReleaseDetailsByTerritory.class);
Release r = (Release) releaseColl.findOne();
i.e. I need to specifically map each potential element of the embedded array to the corresponding class.
Is there a way to tell the Mongo driver that I want all and any element of an embedded array to be mapped to a certain class? Something like :
collection.setInternalClass("ReleaseDetailsByTerritory.*", ReleaseDetailsByTerritory.class);
?
Thanks. And please don't say "use Spring MondoDb module or Morphia". I want to know if this is achievable with the Mongo native Java driver.