[ https://issues.apache.org/jira/browse/CAY-2175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nikita Timofeev reassigned CAY-2175: ------------------------------------ Assignee: Nikita Timofeev > 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 > Assignee: Nikita Timofeev > Labels: easyfix > Fix For: 4.0.M4 > > Original Estimate: 24h > Remaining Estimate: 24h > > 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)