String attributeName = expression.getName();
DatabaseMapping mapping = baseDescriptor.getObjectBuilder().getMappingForAttributeName(attributeName);
if (mapping == null) {
QueryKey queryKey = baseDescriptor.getQueryKeyNamed(attributeName);
if (queryKey != null) {
if (queryKey.isForeignReferenceQueryKey()) {
descriptor = getSession().getDescriptor(((ForeignReferenceQueryKey)queryKey).getReferenceClass());
} else// if (queryKey.isDirectQueryKey())
{
descriptor = queryKey.getDescriptor();
}
}
if (descriptor == null) {
throw QueryException.invalidExpressionForQueryItem(expression, this);
}