JPQLNode n = from.children[i];
if (n.id == JJTABSTRACTSCHEMANAME) {
// we simply return the first abstract schema child
// as resolved into a class
ClassMetaData cmd = resolveClassMetaData(n);
if (cmd != null)
return cmd;
// not a schema: treat it as a class
String cls = assertSchemaName(n);
if (cls == null)
throw parseException(EX_USER, "not-schema-name",
new Object[]{ root() }, null);
return getClassMetaData(cls, true);
}
// OPENJPA-15 support subquery's from clause do not start with
// identification_variable_declaration()
if (node.id == JJTSUBSELECT) {
if (n.id == JJTINNERJOIN) {
n = n.getChild(0);
}
if (n.id == JJTPATH) {
Path path = getPath(n);
ClassMetaData cmd = getFieldType(path.last());
if (cmd != null) {
return cmd;
}
else {
throw parseException(EX_USER, "no-alias",