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

Christian kalkhoff (JIRA) noreply at atlassian.com
Mon Jan 12 03:46:39 EST 2009


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