You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Saravana Kumar M (JIRA)" <ji...@apache.org> on 2016/12/18 16:16:58 UTC

[jira] [Created] (CAY-2175) AliasName used in EJBQLQuery is not working if it contains mixed case.

Saravana Kumar M created CAY-2175:
-------------------------------------

             Summary: AliasName used in EJBQLQuery is not working if it contains mixed case.
                 Key: CAY-2175
                 URL: https://issues.apache.org/jira/browse/CAY-2175
             Project: Cayenne
          Issue Type: Bug
          Components: Core Library
    Affects Versions: 4.0.M4
            Reporter: Saravana Kumar M
             Fix For: 4.0.M4


While using EJBQLQuery, the alias name is not working if it is in mixed case and throws some exception saying: "unmapped id variable:"

Eg:
Working:
EJBQLQuery query = new EJBQLQuery("SELECT artistAlias from Artist artistAlias JOIN artistalias.paintings paintingsAlias where artistalias.artistName = 'Abcd');

Not Working:
EJBQLQuery query = new EJBQLQuery("SELECT artistAlias from Artist artistAlias JOIN artistAlias.paintings paintingsAlias where artistAlias.artistName = 'Abcd');

We declared the alias variable as "artistAlias" but it is not working if you say artistAlias.artistName and working if you say artistalias.artistName

In Compiler.java class, visitFromItem... method
while adding the alias variable name in the dictionary we convert it into lower case
// per JPA spec, 4.4.2, "Identification variables are case insensitive."
String id = normalizeIdPath(expression.getId());
ClassDescriptor old = descriptorsById.put(id, descriptor);

but in visitPath... method while retrieving the alias variable name from the dictionary we are not converting to lower case.
                
this.id = ((EJBQLPath) expression).getId();
this.descriptor = descriptorsById.get(id);
if (descriptor == null) {
          throw new EJBQLException("Unmapped id variable: " + id);
          }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)