[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2829) SubqueryExpression create wrong sql in the case DetachedCriteria has Subcriteria

Hontvári József (JIRA) noreply at atlassian.com
Thu Nov 1 12:52:30 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_28663 ] 

Hontvári József commented on HHH-2829:
--------------------------------------

Thanks for taking the time to report the issue, I have run into the same problem. Have you found a workaround in the meantime (better then falling back to HQL or SQL)?

> SubqueryExpression create wrong sql in the case DetachedCriteria has Subcriteria
> --------------------------------------------------------------------------------
>
>                 Key: HHH-2829
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2829
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: query-criteria
>    Affects Versions: 3.2.5
>         Environment: Hibernate 3.2.5ga
>            Reporter: Sunao Suzuki
>            Priority: Critical
>
> SubqueryExpression create wrong sql in the case DetachedCriteria has Subcriteria(inner join).
> in the case using DetachedCriteria( has Subcriteria) like below , it's works good.
> DetachedCriteria dc = DetachedCriteria.forClass(Person.class);
> DetachedCriteria in = dc.createCriteria("emails");
> in.add(Restrictions.eq("personEmailId", (long)1));
> dc.setProjection(Projections.id());
> 	
> Criteria c = dc.getExecutableCriteria(session);
> 	
> c.list();
> select this_.PERSON_ID as y0_ from PERSON this_ inner join PERSON_EMAIL personemai1_ on this_.PERSON_ID=personemai1_.FK_PERSON_ID where personemai1_.PERSON_EMAIL_ID=?
> But  in the case using DetachedCriteria( has Subcriteria) for subquery like below, it doesn't work.
> DetachedCriteria dc = DetachedCriteria.forClass(Person.class);
> DetachedCriteria in = dc.createCriteria("emails");
> in.add(Restrictions.eq("personEmailId", (long)1));
> dc.setProjection(Projections.id());
> 		
> Criteria c = session.createCriteria(Person.class);
> c.add(Subqueries.propertyIn("personId", dc));
> c.setProjection(Projections.id());
> 		
> c.list();
> select this_.PERSON_ID as y0_ from PERSON this_ where this_.PERSON_ID in (select this0__.PERSON_ID as y0_ from PERSON this0__ where personemai1_.PERSON_EMAIL_ID=?)
> I hope fix quickly.

-- 
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