[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-158) nested DetachedCriteria throwing NullPointerException

Christian Bauer (JIRA) noreply at atlassian.com
Thu Sep 7 09:17:25 EDT 2006


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-158?page=comments#action_24359 ] 

Christian Bauer commented on HHH-158:
-------------------------------------

Of course I can expect that. This is an open source project. If none of the committers and developers has the time to move this issue up on their TODO list, somebody else will have to do it. 


> nested DetachedCriteria throwing NullPointerException
> -----------------------------------------------------
>
>          Key: HHH-158
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-158
>      Project: Hibernate3
>         Type: Bug

>   Components: core
>     Versions: 3.0 beta 4
>     Reporter: Jérôme Boehm
>     Assignee: Gavin King
>  Attachments: testcase.zip
>
>
> It seems that it is not possible to nest DetachedCriteria.
> This is examplified in the testWithReturnedObject() method of the attached TestCase.
> When nesting DetachedCriteria using DetachedCriteria.add(Subqueries.<a_Subqueries_static_method>) twice, we get the following exception:
> java.lang.NullPointerException
>    at org.hibernate.criterion.SubqueryExpression.getTypedValues(SubqueryExpression.java:73)
>    at org.hibernate.loader.criteria.CriteriaQueryTranslator.getQueryParameters(CriteriaQueryTranslator.java:230)
>    at org.hibernate.criterion.SubqueryExpression.toSqlString(SubqueryExpression.java:50)
>    at org.hibernate.criterion.Junction.toSqlString(Junction.java:58)
>    at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:312)
>    at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:92)
>    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1208)
>    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:299)
>    at test.subqueries.SubqueriesTest.main(SubqueriesTest.java:41) 
> Then, after "correcting" SubqueryExpression so that the params instance variable is initialized (see the attached Corrected_SubqueryExpression), it seems that the nested aliases are not properly  propagated, which is examplified in testWithNoReturnedObject().
> The generated sql is:
> select this_.a_id as a1_0_ from a this_ where exists (select this0__.b_id as y0_ from b this0__ where this0__.a_id=this_.a_id and exists (select this0__.c_id as y0_ from c this0__ where this0__.b_id=this0__.b_id))
> I think it should be (notice the this1__ alias for table c):
> select this_.a_id as a1_0_ from a this_ where exists (select this0__.b_id as y0_ from b this0__ where this0__.a_id=this_.a_id and exists (select this1__.c_id as y0_ from c this1__ where this1__.b_id=this0__.b_id))

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