[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
Mon Jan 19 19:18:38 EST 2009


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

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

Hello,

I have the same kind of problem.
With Hibernate 3.2.6ga.
I have just upgraded to Hibernate 3.3.1ga.
The problems remains.

the problem is with an entity that contains an embedded class, that have a relation to another entity.

**********************
I have an entity A that contains an embedded object  "commonInfo"
 (with class CommonInfo)

CommonInfo have a relation to entity ShipFlag.

entity ShipFlag have properties (id, name, etc...)

==> when building a criteria with : "commonInfo.shipFlag.name", I get the exception too :

org.hibernate.QueryException: could not resolve property: commonInfo.shipFlag.name of:....

**********************
I have not tried the HQL.
Cannot really try it : the Criteria are built by a kind of factory... not easy to transfert that to some HQL.

***********************
I have tried some other thing : 
 - the probleme is either for some where clause, as well as for ordering clause.

 - if I ask for the id of shipFlag : it works !
with : commonInfo.shipFlag.id

 - if I ask for some other properties than id, but with the same type as id : it does not work.
(whatever the type of the property is : int, Integer, String....)
It works only for the Primary Key of the entity.

************************
that's strange...
any idea ?
is this a bug (since 3.2.6 ???)

Thanks
Antoine

> 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