[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3114) Subqueries in Criteria-API use wrong table alias
Gail Badner (JIRA)
noreply at atlassian.com
Tue Mar 4 17:28:33 EST 2008
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_29673 ]
Gail Badner commented on HHH-3114:
----------------------------------
See HHH-3154 for an explanation of what goes wrong.
> Subqueries in Criteria-API use wrong table alias
> ------------------------------------------------
>
> Key: HHH-3114
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3114
> Project: Hibernate3
> Issue Type: Bug
> Components: query-criteria
> Affects Versions: 3.2.6
> Reporter: Gerald Glocker
> Priority: Blocker
> Attachments: test-hibernate-inner.zip
>
>
> Subqueries (exists, notExists, and probably others) are formulated using table alias "this_" but the outer query also uses the same table alias.
> This is a serious mistake for subqueries working on the same table or for subqueries on tables with the same column names.
> Example:
> DetachedCriteria c = DetachedCriteria.forClass(Person.class, "a");
> c.add(Restrictions.eq("lastname", "Smith"));
> DetachedCriteria sub = DetachedCriteria.forClass(Person.class);
> sub.setProjection(Projections.property("id"));
> sub.add(Restrictions.eqProperty("lastname", "a.lastname"));
> sub.add(Restrictions.gtProperty("dob", "a.dob"));
> c.add(Subqueries.exists(sub));
> List persons = ht.findByCriteria(c);
> Produces SQL:
> select this_.id as id4_0_,
> this_.firstname as firstname4_0_,
> this_.lastname as lastname4_0_,
> this_.dob as dob4_0_
> from Person this_
> where this_.lastname = ?
> and exists (select this_.id as y0_
> from Person this_
> where this_.lastname = this_.lastname
> and this_.dob > this_.dob)
> The error can cleary be seen on the where-condition "this_.dob > this_.dob".
> Please try to fix this problem soon. A running test could be provided.
--
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