[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-4075) UnsupportedOperationException when assigning an alias to an indexed collection
Steven Swor (JIRA)
noreply at atlassian.com
Tue Sep 28 16:46:57 EDT 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-4075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=38536#action_38536 ]
Steven Swor commented on HHH-4075:
----------------------------------
I see the same issue with SQLServerDialect, only replacing {code:sql}oa[a]{code} with {code:sql}o.orderAttributes[a]{code} results in a cross join between all three tables.
> UnsupportedOperationException when assigning an alias to an indexed collection
> ------------------------------------------------------------------------------
>
> Key: HHH-4075
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4075
> Project: Hibernate Core
> Issue Type: Bug
> Components: query-hql
> Affects Versions: 3.3.2
> Environment: Hibernate 3.3.2.GA, MySQL5InnoDBDialect
> Reporter: Robert Wruck
>
> This works:
> select count(*) from Order o left join o.orderAttributes oa, Attribute a
> where a.id = 1
> and index(oa) = a
> but accessing elements throws an exception:
> select count(*) from Order o left join o.orderAttributes oa, Attribute a
> where a.id = 1
> and oa[a] is null or oa[a] = '2'
> Replacing oa[a] with o.orderAttributes[a] does not throw an exception but also does an inner join, so it's not a workaround.
> Stack trace:
> java.lang.UnsupportedOperationException
> at org.hibernate.hql.ast.tree.IdentNode.resolveIndex(IdentNode.java:66)
> at org.hibernate.hql.ast.tree.IndexNode.resolve(IndexNode.java:94)
> at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:117)
> at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:113)
> at org.hibernate.hql.ast.HqlSqlWalker.processIndex(HqlSqlWalker.java:956)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4576)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1289)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4243)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:4084)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1864)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1792)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:818)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:604)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288)
> at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231)
> at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)
> at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)
> at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
> at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
> at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
> at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
> at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
> at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
> at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
--
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