private INativeSQLQueryReturn CreateQueryReturn(object item, int count) { HbmLoadCollection loadCollectionSchema = item as HbmLoadCollection; HbmReturn returnSchema = item as HbmReturn; HbmReturnJoin returnJoinSchema = item as HbmReturnJoin; HbmReturnScalar returnScalarSchema = item as HbmReturnScalar; if (returnScalarSchema != null) { return(CreateScalarReturn(returnScalarSchema)); } else if (returnSchema != null) { return(CreateReturn(returnSchema, count)); } else if (returnJoinSchema != null) { return(CreateJoinReturn(returnJoinSchema)); } else if (loadCollectionSchema != null) { return(CreateLoadCollectionReturn(loadCollectionSchema)); } else { return(null); } }
private NativeSQLQueryJoinReturn CreateJoinReturn(HbmReturnJoin returnJoinSchema) { int dot = returnJoinSchema.property.LastIndexOf('.'); if (dot == -1) { throw new MappingException( "Role attribute for sql query return [alias=" + returnJoinSchema.alias + "] not formatted correctly {owningAlias.propertyName}" ); } string roleOwnerAlias = returnJoinSchema.property.Substring(0, dot); string roleProperty = returnJoinSchema.property.Substring(dot + 1); //FIXME: get the PersistentClass IDictionary <string, string[]> propertyResults = BindPropertyResults(returnJoinSchema.alias, null, returnJoinSchema.returnproperty, null); return(new NativeSQLQueryJoinReturn(returnJoinSchema.alias, roleOwnerAlias, roleProperty, propertyResults, // TODO: bindpropertyresults(alias, returnElem) GetLockMode(returnJoinSchema.lockmode))); }