[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-892) HQL parser does not resolve alias in ORDER BY clause

Gail Badner (JIRA) noreply at atlassian.com
Wed Sep 1 04:03:25 EDT 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=38242#action_38242 ] 

Gail Badner commented on HHH-892:
---------------------------------

There is a problem with the patch. If there is an alias that has the same name as a column, the column takes precedence.

This will happen, even if the column has a different alias.

For example, an HQL query like:
    "select z.address as name, z.name as address from Zoo z order by name, address"
is resolving to:

<code>
    select
        zoo0_.street as col_0_0_,
        zoo0_.city as col_0_1_,
        zoo0_.postalCode as col_0_2_,
        zoo0_.country as col_0_3_,
        zoo0_.state_prov_id as col_0_4_,
        zoo0_.name as col_1_0_ 
    from
        Zoo zoo0_ 
    order by
        zoo0_.name,
        zoo0_.street,
        zoo0_.city,
        zoo0_.postalCode,
        zoo0_.country,
        zoo0_.state_prov_id
</code>   

It should resolve to:
<code>
    select
        zoo0_.street as col_0_0_,
        zoo0_.city as col_0_1_,
        zoo0_.postalCode as col_0_2_,
        zoo0_.country as col_0_3_,
        zoo0_.state_prov_id as col_0_4_,
        zoo0_.name as col_1_0_ 
    from
        Zoo zoo0_ 
    order by
        col_0_0_,
        col_0_1_,
        col_0_2_,
        col_0_3_,
        col_0_4_,
        col_1_0_ 
</code>

> HQL parser does not resolve alias in ORDER  BY clause
> -----------------------------------------------------
>
>                 Key: HHH-892
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-892
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: query-hql
>    Affects Versions: 3.5.4, 3.6.0.Beta1
>         Environment: Hibernate 3.0.5, MySQL, Tomcat
>            Reporter: Guido Laures
>            Assignee: Gail Badner
>             Fix For: 3.6.0.CR1
>
>         Attachments: HHH-892.patch, HibernateHavingAliasTest.java
>
>
> When using an alias for an ORDER BY clause this is not always correctly resolved. Example:
> SELECT SUM(A.x) AS mySum FROM MyClass AS A GROUP BY A.y ORDER BY mySum
> does not work because "mySum" is not resolved in the ORDER BY clause which results in an exception telling that mySum is an unknown column.
> Workaround (not to say "hack") is using:
> SELECT SUM(A.x) AS mySum FROM MyClass AS A GROUP BY A.y ORDER BY col_0_0_

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list