[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