[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3704) Criteria Query on property of sandwich-like @MappedSuperclass fails. HQL works

Antoine Herzog (JIRA) noreply at atlassian.com
Wed Feb 18 12:19:38 EST 2009


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=32443#action_32443 ] 

Antoine Herzog commented on HHH-3704:
-------------------------------------

Sorry, I don't know.

I don't know why the query builder can do it with alias, but is not able to retrieve the path by introspection of the entities.

It seems that it can do it for one step only.
but cannot iterate on it.

I guess that there is a reason not to have done so.
In the engine of Hibernate.

may be because Hibernate needs something more to identify the tree of entities (the full path), than just introspection.
that would explain why it needs to have an alias of it.

but have no real idea if this can be done, by modifying the code (with your special add-on) or by asking it to the project for a next release.


> Criteria Query on property of sandwich-like @MappedSuperclass fails. HQL works
> ------------------------------------------------------------------------------
>
>                 Key: HHH-3704
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3704
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: query-criteria
>    Affects Versions: 3.3.1
>         Environment: hibernate 3.3.1, mysql 5.0.45
>            Reporter: Christian kalkhoff
>            Priority: Minor
>
> I have a hierarchy of @MappedSuperclasses, in my case:
> @MappedSuperclass class BaseEntity{...}
> @MappedSuperclass class NamedBaseEntity extends BaseEntity {...}
> @Entity class ConcreteEntity extends NamedBaseEntity {...}
> @Entity class AggregatingOtherEntity extends NamedBaseEntity {
>     ConcreteEntity concreteEntity;
> }
> BaseEntity holds property "id", NamedBaseEntity holds property "name". ConcreteEntity might have property "moonphase".
> If I create a Criteria search expression on AggregatingOtherEntity like
> eq("concreteEntity.id", 1L)
> that works.
> eq("concreteEntity.moonphase", "half decending") works either.
> BUT
> like("concreteEntity.name", "foobar")
> raises QueryException: 
> org.hibernate.QueryException: could not resolve property: concreteEntity.name of: AggregatingOtherEntity
> 	org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67)
> 	org.hibernate.persister.entity.AbstractPropertyMapping.toColumns(AbstractPropertyMapping.java:82)
> 	org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:54)
> 	org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1377)
> 	org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:457)
> 	org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection(CriteriaQueryTranslator.java:417)
> 	org.hibernate.criterion.SimpleExpression.toSqlString(SimpleExpression.java:68)
> 	org.hibernate.criterion.LogicalExpression.toSqlString(LogicalExpression.java:62)
> 	org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:357)
> 	org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:113)
> 	org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82)
> 	org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:91)
> 	org.hibernate.impl.SessionImpl.list(SessionImpl.java:1577)
> 	org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
> 	[...]
> If I refactor the Criteria search to plain HQL (From AggregatingOtherEntity Where concreteEntity.name like 'half decending') it works. So there is a workaround.

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