candidate = fmd.getDefiningMetaData();
setCandidate(candidate, alias);
Context subContext = ctx();
Subquery subquery = ctx().getSubquery();
if (subquery == null){
subquery = factory.newSubquery(candidate, true, alias);
subContext.setSubquery(subquery);
}
else {
subquery.setSubqAlias(alias);
}
Path subpath = factory.newPath(subquery);
subpath.setSchemaAlias(path.getCorrelationVar());
subpath.setMetaData(candidate);
subquery.setMetaData(candidate);
if (fmd.isElementCollection())
exp = and(exp, bindVar);
else
exp = and(exp, factory.equal(path, subpath));