[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2451?page=all ]
Steve Ebersole closed HHH-2451:
-------------------------------
Resolution: Rejected
And yet unlike HHH-2284, what you are trying here is explicitly disallowed. It is not
valid to "directly dereference" a collection. You must instead use the explicit
join syntax.
Why? Because semantically it makes no sense. A collection of 'criteriaLinks_'
does not collectively have a 'documents_' attribute. Nor for that matter does a
collection of 'documents_' collectively have an 'id' attribute.
HQL: selecting subselects within subselects doesn't work
--------------------------------------------------------
Key: HHH-2451
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2451
Project: Hibernate3
Type: Bug
Components: core, query-hql
Versions: 3.2.2
Reporter: Jay Merrifield
This is similar to the bug in HHH-2284. Instead this time I have the following HQL query:
select eb from EarlyBird as eb, Topic as t where eb.id = t.criteriaLinks_.documents_.id
and t = ?
where Topic contains
<set access="field" name="criteriaLinks_"
table="TopicCriteria" lazy="true" inverse="true">
<key column="topicId" />
<many-to-many column="criteriaLinkId"
class="org.illumen.oasdpa.CriteriaLink" />
</set>
and CriteriaLink contains
<set access="field" name="documents_"
table="CriteriaDocument" lazy="true" inverse="false">
<key column="criteriaLinkId"/>
<many-to-many column="documentId"
class="org.illumen.document.Document"/>
</set>
This works under 3.0. But it's failing with the error:
2007-02-26 17:27:02,775 DEBUG [DotNode] getDataType() : documents_ ->
org.hibernate.type.IdentifierBagType(org.illumen.oasdpa.CriteriaLink.documents_)
org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:555)
2007-02-26 17:27:02,775 ERROR [PARSER] illegal syntax near collection: documents_
org.hibernate.hql.ast.ErrorCounter.reportError(ErrorCounter.java:33)
2007-02-26 17:27:02,790 DEBUG [ErrorCounter] illegal syntax near collection: documents_
org.hibernate.hql.ast.ErrorCounter.reportError(ErrorCounter.java:28)
illegal syntax near collection: documents_
at org.hibernate.hql.ast.tree.DotNode.checkLhsIsNotCollection(DotNode.java:500)
at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:205)
at org.hibernate.hql.ast.tree.DotNode.resolveFirstChild(DotNode.java:143)
at org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:460)
--
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira