You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (JIRA)" <ji...@apache.org> on 2016/12/20 11:41:58 UTC
[jira] [Closed] (CAY-2175) AliasName used in EJBQLQuery is not
working if it contains mixed case.
[ https://issues.apache.org/jira/browse/CAY-2175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrus Adamchik closed CAY-2175.
--------------------------------
Resolution: Fixed
The fix is in. Closing. [~kumar9885035454] - thanks for the report.
> 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)