[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-1631) Missing table in SQL from clause that is referenced in where clause when using joined subclass

Steve Ebersole (JIRA) noreply at atlassian.com
Thu Nov 16 14:36:05 EST 2006


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1631?page=all ]
     
Steve Ebersole resolved HHH-1631:
---------------------------------

    Resolution: Fixed

trunk / 3.2

> Missing table in SQL from clause that is referenced in where clause when using joined subclass
> ----------------------------------------------------------------------------------------------
>
>          Key: HHH-1631
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1631
>      Project: Hibernate3
>         Type: Bug

>   Components: query-hql
>     Versions: 3.1.3
>  Environment: Hibernate 3.1.3 
> Annotations 3.1 beta 8 
> Postgresql 8.1.3
>     Reporter: Pat Double
>     Assignee: Steve Ebersole
>      Fix For: 3.2.1
>  Attachments: BrokenHibernateDowncast.java
>
>
> I have an HQL statement that is missing a join clause in the generated SQL. The entity is using a hierarchy with joined subclass. I am using annotations to define the mapping. I want to query based on a subclass property, so hibernate has to do a "downcast" of some sort. Here's the HQL: 
>  
> select pound.location.state from "+Pound.class.getName()+" as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5 
>   
> This works fine if I do not have the select clause, when I add the select clause it fails and removes the join for the subclass "Bobcat", which has the property "meanness". I have included a full test case including configuration. 
>  
> This looks related to the recently fixed bug HHH-1248. It could also be related to HHH-940, but I'm not sure.
>  
> 06-03-22 15:05:24,467 WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42P01 
>  2006-03-22 15:05:24,469 ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>  Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query 
>     at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) 
>     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2148) 
>     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
>     at org.hibernate.loader.Loader.list(Loader.java:2024) 
>     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
>     at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
>     at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
>     at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
>     at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
>     at com.i2rd.occasio.test.BrokenHibernateDowncast.main(BrokenHibernateDowncast.java:179) 
>  Caused by: org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) 
>     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) 
>     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) 
>     at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139) 
>     at org.hibernate.loader.Loader.getResultSet(Loader.java:1669) 
>     at org.hibernate.loader.Loader.doQuery(Loader.java:662) 
>     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2145) 
>     ... 8 more 
> 06-03-22 15:05:24,467 WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42P01 
>  2006-03-22 15:05:24,469 ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>  Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query 
>     at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) 
>     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2148) 
>     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
>     at org.hibernate.loader.Loader.list(Loader.java:2024) 
>     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
>     at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
>     at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
>     at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
>     at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
>     at com.i2rd.occasio.test.BrokenHibernateDowncast.main(BrokenHibernateDowncast.java:179) 
>  Caused by: org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) 
>     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) 
>     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) 
>     at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139) 
>     at org.hibernate.loader.Loader.getResultSet(Loader.java:1669) 
>     at org.hibernate.loader.Loader.doQuery(Loader.java:662) 
>     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2145) 
>     ... 8 more 
>  select 
>          brokenhibe3_.state as col_0_0_ 
>      from 
>          pound brokenhibe0_ 
>      inner join 
>          pound_cat cats1_ 
>              on brokenhibe0_.id=cats1_.pound_id 
>      inner join 
>          cat brokenhibe2_ 
>              on cats1_.cats_id=brokenhibe2_.id, 
>          city brokenhibe3_ 
>      where 
>          brokenhibe0_.location_id=brokenhibe3_.id 
>          and brokenhibe3_.name='Anytown' 
>          and brokenhibe2_2_.meanness>5 
>  
>    
> 2006-03-22 15:18:18,127 DEBUG [null main] query.QueryPlanCache (QueryPlanCache.java:69) - unable to locate HQL query plan in cache; generating (select pound.location.state from com.i2rd.occasio.test.BrokenHibernateDowncast$Pound as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5) 
>  2006-03-22 15:18:18,129 DEBUG [null main] ast.QueryTranslatorImpl (QueryTranslatorImpl.java:236) - parse() - HQL: select pound.location.state from com.i2rd.occasio.test.BrokenHibernateDowncast$Pound as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5 
>  2006-03-22 15:18:18,140 DEBUG [null main] ast.QueryTranslatorImpl (QueryTranslatorImpl.java:252) - --- HQL AST --- 
>   \-[QUERY] 'query' 
>      +-[SELECT_FROM] 'SELECT_FROM' 
>      |  +-[FROM] 'from' 
>      |  |  +-[RANGE] 'RANGE' 
>      |  |  |  +-[DOT] '.' 
>      |  |  |  |  +-[DOT] '.' 
>      |  |  |  |  |  +-[DOT] '.' 
>      |  |  |  |  |  |  +-[DOT] '.' 
>      |  |  |  |  |  |  |  +-[IDENT] 'com' 
>      |  |  |  |  |  |  |  \-[IDENT] 'i2rd' 
>      |  |  |  |  |  |  \-[IDENT] 'occasio' 
>      |  |  |  |  |  \-[IDENT] 'test' 
>      |  |  |  |  \-[IDENT] 'BrokenHibernateDowncast$Pound' 
>      |  |  |  \-[ALIAS] 'pound' 
>      |  |  \-[JOIN] 'join' 
>      |  |     +-[INNER] 'inner' 
>      |  |     +-[DOT] '.' 
>      |  |     |  +-[IDENT] 'pound' 
>      |  |     |  \-[IDENT] 'cats' 
>      |  |     \-[ALIAS] 'cat' 
>      |  \-[SELECT] 'select' 
>      |     \-[DOT] '.' 
>      |        +-[DOT] '.' 
>      |        |  +-[IDENT] 'pound' 
>      |        |  \-[IDENT] 'location' 
>      |        \-[IDENT] 'state' 
>      \-[WHERE] 'where' 
>         \-[AND] 'and' 
>            +-[EQ] '=' 
>            |  +-[DOT] '.' 
>            |  |  +-[DOT] '.' 
>            |  |  |  +-[IDENT] 'pound' 
>            |  |  |  \-[IDENT] 'location' 
>            |  |  \-[IDENT] 'name' 
>            |  \-[QUOTED_STRING] ''Anytown'' 
>            \-[GT] '>' 
>               +-[DOT] '.' 
>               |  +-[IDENT] 'cat' 
>               |  \-[IDENT] 'meanness' 
>               \-[NUM_INT] '5' 
>  
>  2006-03-22 15:18:18,143 DEBUG [null main] ast.ErrorCounter (ErrorCounter.java:68) - throwQueryException() : no errors 
>  2006-03-22 15:18:18,143 DEBUG [null main] antlr.HqlSqlBaseWalker (HqlSqlBaseWalker.java:111) - select << begin [level=1, statement=select] 
>  2006-03-22 15:18:18,152 DEBUG [null main] tree.FromElement (FromElement.java:104) - FromClause{level=1} :  com.i2rd.occasio.test.BrokenHibernateDowncast$Pound (pound) -> brokenhibe0_ 
>  2006-03-22 15:18:18,153 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound -> brokenhibe0_.id 
>  2006-03-22 15:18:18,155 DEBUG [null main] tree.DotNode (DotNode.java:541) - getDataType() : cats -> org.hibernate.type.SetType(com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.cats) 
>  2006-03-22 15:18:18,156 DEBUG [null main] tree.FromElementFactory (FromElementFactory.java:368) - createManyToMany() : path = pound.cats role = com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.cats associatedEntityName = com.i2rd.occasio.test.BrokenHibernateDowncast$Cat 
>  2006-03-22 15:18:18,156 DEBUG [null main] tree.FromElement (FromElement.java:104) - FromClause{level=1} :  com.i2rd.occasio.test.BrokenHibernateDowncast$Cat (cat) -> brokenhibe2_ 
>  2006-03-22 15:18:18,157 DEBUG [null main] tree.FromClause (FromClause.java:218) - addJoinByPathMap() : pound.cats -> cat brokenhibe2_ 
>  2006-03-22 15:18:18,158 DEBUG [null main] tree.DotNode (DotNode.java:265) - dereferenceCollection() : Created new FROM element for pound.cats : pound_cat brokenhibe2_ 
>  2006-03-22 15:18:18,158 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound.cats -> . 
>  2006-03-22 15:18:18,164 DEBUG [null main] ast.HqlSqlWalker (HqlSqlWalker.java:327) - createFromJoinElement() : -- join tree -- 
>   \-[JOIN_FRAGMENT] FromElement: 'pound_cat brokenhibe2_' FromElement{explicit,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=cat,role=com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.cats,tableName=cat,tableAlias=brokenhibe2_,origin=pound brokenhibe0_,colums={brokenhibe0_.id ,className=com.i2rd.occasio.test.BrokenHibernateDowncast$Cat}} 
>  
>  2006-03-22 15:18:18,165 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound -> brokenhibe0_.id 
>  2006-03-22 15:18:18,168 DEBUG [null main] tree.DotNode (DotNode.java:541) - getDataType() : location -> org.hibernate.type.ManyToOneType(com.i2rd.occasio.test.BrokenHibernateDowncast$City) 
>  2006-03-22 15:18:18,169 DEBUG [null main] tree.DotNode (DotNode.java:348) - dereferenceEntityJoin() : generating join for location in com.i2rd.occasio.test.BrokenHibernateDowncast$Pound {no alias} parent = [  ( . ( . brokenhibe0_.id location ) state ) ] 
>  2006-03-22 15:18:18,169 DEBUG [null main] tree.FromElement (FromElement.java:104) - FromClause{level=1} :  com.i2rd.occasio.test.BrokenHibernateDowncast$City (no alias) -> brokenhibe3_ 
>  2006-03-22 15:18:18,170 DEBUG [null main] tree.FromClause (FromClause.java:218) - addJoinByPathMap() : pound.location -> city brokenhibe3_ 
>  2006-03-22 15:18:18,170 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound.location -> brokenhibe0_.location_id 
>  2006-03-22 15:18:18,171 DEBUG [null main] tree.DotNode (DotNode.java:541) - getDataType() : state -> org.hibernate.type.StringType at ea3932 
>  2006-03-22 15:18:18,172 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound.location.state -> brokenhibe3_.state 
>  2006-03-22 15:18:18,173 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound -> brokenhibe0_.id 
>  2006-03-22 15:18:18,174 DEBUG [null main] tree.DotNode (DotNode.java:541) - getDataType() : location -> org.hibernate.type.ManyToOneType(com.i2rd.occasio.test.BrokenHibernateDowncast$City) 
>  2006-03-22 15:18:18,174 DEBUG [null main] tree.DotNode (DotNode.java:348) - dereferenceEntityJoin() : generating join for location in com.i2rd.occasio.test.BrokenHibernateDowncast$Pound {no alias} parent = [  ( . ( . brokenhibe0_.id location ) name ) ] 
>  2006-03-22 15:18:18,175 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound.location -> brokenhibe0_.location_id 
>  2006-03-22 15:18:18,176 DEBUG [null main] tree.DotNode (DotNode.java:541) - getDataType() : name -> org.hibernate.type.StringType at ea3932 
>  2006-03-22 15:18:18,176 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  pound.location.name -> brokenhibe3_.name 
>  2006-03-22 15:18:18,177 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  cat -> brokenhibe2_.id 
>  2006-03-22 15:18:18,178 DEBUG [null main] tree.DotNode (DotNode.java:541) - getDataType() : meanness -> org.hibernate.type.IntegerType at 170ec24 
>  2006-03-22 15:18:18,180 DEBUG [null main] tree.FromReferenceNode (FromReferenceNode.java:51) - Resolved :  cat.meanness -> brokenhibe2_2_.meanness 
>  2006-03-22 15:18:18,180 DEBUG [null main] antlr.HqlSqlBaseWalker (HqlSqlBaseWalker.java:117) - select : finishing up [level=1, statement=select] 
>  2006-03-22 15:18:18,181 DEBUG [null main] ast.HqlSqlWalker (HqlSqlWalker.java:511) - processQuery() :  ( SELECT ( {select clause} ( brokenhibe3_.state ( brokenhibe0_.location_id brokenhibe0_.id location ) state ) ) ( FromClause{level=1} ( pound brokenhibe0_ pound_cat brokenhibe2_ city brokenhibe3_ ) ) ( where ( and ( = ( brokenhibe3_.name ( brokenhibe0_.location_id brokenhibe0_.id location ) name ) 'Anytown' ) ( > ( brokenhibe2_2_.meanness brokenhibe2_.id meanness ) 5 ) ) ) ) 
>  2006-03-22 15:18:18,186 DEBUG [null main] util.SyntheticAndFactory (SyntheticAndFactory.java:58) - Using WHERE fragment [brokenhibe0_.location_id=brokenhibe3_.id] 
>  2006-03-22 15:18:18,186 DEBUG [null main] util.JoinProcessor (JoinProcessor.java:128) - Using FROM fragment [inner join pound_cat cats1_ on brokenhibe0_.id=cats1_.pound_id inner join cat brokenhibe2_ on cats1_.cats_id=brokenhibe2_.id] 
>  2006-03-22 15:18:18,187 DEBUG [null main] util.JoinProcessor (JoinProcessor.java:128) - Using FROM fragment [pound brokenhibe0_] 
>  2006-03-22 15:18:18,187 DEBUG [null main] antlr.HqlSqlBaseWalker (HqlSqlBaseWalker.java:123) - select >> end [level=1, statement=select] 
>  2006-03-22 15:18:18,193 DEBUG [null main] ast.QueryTranslatorImpl (QueryTranslatorImpl.java:222) - --- SQL AST --- 
>   \-[SELECT] QueryNode: 'SELECT'  querySpaces (pound_cat,pound,cat,city) 
>      +-[SELECT_CLAUSE] SelectClause: '{select clause}' 
>      |  +-[DOT] DotNode: 'brokenhibe3_.state' {propertyName=state,dereferenceType=4,propertyPath=state,path=pound.location.state,tableAlias=brokenhibe3_,className=com.i2rd.occasio.test.BrokenHibernateDowncast$City,classAlias=null} 
>      |  |  +-[DOT] DotNode: 'brokenhibe0_.location_id' {propertyName=location,dereferenceType=1,propertyPath=location,path=pound.location,tableAlias=brokenhibe3_,className=com.i2rd.occasio.test.BrokenHibernateDowncast$City,classAlias=null} 
>      |  |  |  +-[ALIAS_REF] IdentNode: 'brokenhibe0_.id' {alias=pound, className=com.i2rd.occasio.test.BrokenHibernateDowncast$Pound, tableAlias=brokenhibe0_} 
>      |  |  |  \-[IDENT] IdentNode: 'location' {originalText=location} 
>      |  |  \-[IDENT] IdentNode: 'state' {originalText=state} 
>      |  \-[SELECT_COLUMNS] SqlNode: ' as col_0_0_' 
>      +-[FROM] FromClause: 'from' FromClause{level=1, fromElementCounter=3, fromElements=3, fromElementByClassAlias=[pound, cat, null], fromElementByTableAlias=[brokenhibe3_, brokenhibe0_, brokenhibe2_], fromElementsByPath=[pound.cats, pound.location], collectionJoinFromElementsByPath=[], impliedElements=[]} 
>      |  \-[FROM_FRAGMENT] FromElement: 'pound brokenhibe0_' FromElement{explicit,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=pound,role=null,tableName=pound,tableAlias=brokenhibe0_,origin=null,colums={,className=com.i2rd.occasio.test.BrokenHibernateDowncast$Pound}} 
>      |     +-[JOIN_FRAGMENT] FromElement: 'inner join pound_cat cats1_ on brokenhibe0_.id=cats1_.pound_id inner join cat brokenhibe2_ on cats1_.cats_id=brokenhibe2_.id' FromElement{explicit,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=cat,role=com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.cats,tableName=cat,tableAlias=brokenhibe2_,origin=pound brokenhibe0_,colums={brokenhibe0_.id ,className=com.i2rd.occasio.test.BrokenHibernateDowncast$Cat}} 
>      |     \-[FROM_FRAGMENT] ImpliedFromElement: 'city brokenhibe3_' ImpliedFromElement{implied,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=null,tableName=city,tableAlias=brokenhibe3_,origin=pound brokenhibe0_,colums={brokenhibe0_.location_id ,className=com.i2rd.occasio.test.BrokenHibernateDowncast$City}} 
>      \-[WHERE] SqlNode: 'where' 
>         +-[THETA_JOINS] SqlNode: '{theta joins}' 
>         |  \-[SQL_TOKEN] SqlFragment: 'brokenhibe0_.location_id=brokenhibe3_.id' 
>         \-[AND] SqlNode: 'and' 
>            +-[EQ] BinaryLogicOperatorNode: '=' 
>            |  +-[DOT] DotNode: 'brokenhibe3_.name' {propertyName=name,dereferenceType=4,propertyPath=name,path=pound.location.name,tableAlias=brokenhibe3_,className=com.i2rd.occasio.test.BrokenHibernateDowncast$City,classAlias=null} 
>            |  |  +-[DOT] DotNode: 'brokenhibe0_.location_id' {propertyName=location,dereferenceType=1,propertyPath=location,path=pound.location,tableAlias=brokenhibe3_,className=com.i2rd.occasio.test.BrokenHibernateDowncast$City,classAlias=null} 
>            |  |  |  +-[ALIAS_REF] IdentNode: 'brokenhibe0_.id' {alias=pound, className=com.i2rd.occasio.test.BrokenHibernateDowncast$Pound, tableAlias=brokenhibe0_} 
>            |  |  |  \-[IDENT] IdentNode: 'location' {originalText=location} 
>            |  |  \-[IDENT] IdentNode: 'name' {originalText=name} 
>            |  \-[QUOTED_STRING] LiteralNode: ''Anytown'' 
>            \-[GT] BinaryLogicOperatorNode: '>' 
>               +-[DOT] DotNode: 'brokenhibe2_2_.meanness' {propertyName=meanness,dereferenceType=4,propertyPath=meanness,path=cat.meanness,tableAlias=brokenhibe2_,className=com.i2rd.occasio.test.BrokenHibernateDowncast$Cat,classAlias=cat} 
>               |  +-[ALIAS_REF] IdentNode: 'brokenhibe2_.id' {alias=cat, className=com.i2rd.occasio.test.BrokenHibernateDowncast$Cat, tableAlias=brokenhibe2_} 
>               |  \-[IDENT] IdentNode: 'meanness' {originalText=meanness} 
>               \-[NUM_INT] LiteralNode: '5' 
>  
>  2006-03-22 15:18:18,197 DEBUG [null main] ast.ErrorCounter (ErrorCounter.java:68) - throwQueryException() : no errors 
>  2006-03-22 15:18:18,198 DEBUG [null main] ast.QueryTranslatorImpl (QueryTranslatorImpl.java:206) - HQL: select pound.location.state from com.i2rd.occasio.test.BrokenHibernateDowncast$Pound as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5 
>  2006-03-22 15:18:18,198 DEBUG [null main] ast.QueryTranslatorImpl (QueryTranslatorImpl.java:207) - SQL: select brokenhibe3_.state as col_0_0_ from pound brokenhibe0_ inner join pound_cat cats1_ on brokenhibe0_.id=cats1_.pound_id inner join cat brokenhibe2_ on cats1_.cats_id=brokenhibe2_.id, city brokenhibe3_ where brokenhibe0_.location_id=brokenhibe3_.id and brokenhibe3_.name='Anytown' and brokenhibe2_2_.meanness>5 
>  2006-03-22 15:18:18,199 DEBUG [null main] ast.ErrorCounter (ErrorCounter.java:68) - throwQueryException() : no errors 
>  2006-03-22 15:18:18,200 DEBUG [null main] query.HQLQueryPlan (HQLQueryPlan.java:219) - HQL param location recognition took 0 mills (select pound.location.state from com.i2rd.occasio.test.BrokenHibernateDowncast$Pound as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5) 
>  2006-03-22 15:18:18,201 DEBUG [null main] query.QueryPlanCache (QueryPlanCache.java:75) - located HQL query plan in cache (select pound.location.state from com.i2rd.occasio.test.BrokenHibernateDowncast$Pound as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5) 
>  2006-03-22 15:18:18,202 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:58) - flushing session 
>  2006-03-22 15:18:18,202 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:111) - processing flush-time cascades 
>  2006-03-22 15:18:18,202 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:153) - dirty checking collections 
>  2006-03-22 15:18:18,203 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:170) - Flushing entities and processing referenced collections 
>  2006-03-22 15:18:18,204 DEBUG [null main] engine.Collections (Collections.java:176) - Collection found: [com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.cats#1], was: [com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.cats#1] (initialized) 
>  2006-03-22 15:18:18,204 DEBUG [null main] engine.Collections (Collections.java:176) - Collection found: [com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.dogs#1], was: [com.i2rd.occasio.test.BrokenHibernateDowncast$Pound.dogs#1] (initialized) 
>  2006-03-22 15:18:18,205 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:209) - Processing unreferenced collections 
>  2006-03-22 15:18:18,206 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:223) - Scheduling collection removes/(re)creates/updates 
>  2006-03-22 15:18:18,207 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:85) - Flushed: 0 insertions, 0 updates, 0 deletions to 6 objects 
>  2006-03-22 15:18:18,207 DEBUG [null main] def.AbstractFlushingEventListener (AbstractFlushingEventListener.java:91) - Flushed: 0 (re)creations, 0 updates, 0 removals to 2 collections 
>  2006-03-22 15:18:18,208 DEBUG [null main] pretty.Printer (Printer.java:83) - listing entities: 
>  2006-03-22 15:18:18,209 DEBUG [null main] pretty.Printer (Printer.java:90) - com.i2rd.occasio.test.BrokenHibernateDowncast$Pound{cats=[com.i2rd.occasio.test.BrokenHibernateDowncast$Cat#2, com.i2rd.occasio.test.BrokenHibernateDowncast$Cat#1], dogs=[com.i2rd.occasio.test.BrokenHibernateDowncast$Dog#2, com.i2rd.occasio.test.BrokenHibernateDowncast$Dog#1], location=com.i2rd.occasio.test.BrokenHibernateDowncast$City#1, id=1} 
>  2006-03-22 15:18:18,209 DEBUG [null main] pretty.Printer (Printer.java:90) - com.i2rd.occasio.test.BrokenHibernateDowncast$LargeDog{largeness=100, name=max, id=2} 
>  2006-03-22 15:18:18,210 DEBUG [null main] pretty.Printer (Printer.java:90) - com.i2rd.occasio.test.BrokenHibernateDowncast$DomesticCat{region=Midwest USA, name=charley, id=1} 
>  2006-03-22 15:18:18,210 DEBUG [null main] pretty.Printer (Printer.java:90) - com.i2rd.occasio.test.BrokenHibernateDowncast$Bobcat{meanness=10, name=bobby, id=2} 
>  2006-03-22 15:18:18,211 DEBUG [null main] pretty.Printer (Printer.java:90) - com.i2rd.occasio.test.BrokenHibernateDowncast$ToyDog{tinyness=1, name=fifi, id=1} 
>  2006-03-22 15:18:18,211 DEBUG [null main] pretty.Printer (Printer.java:90) - com.i2rd.occasio.test.BrokenHibernateDowncast$City{state=NE, name=Anytown, id=1} 
>  2006-03-22 15:18:18,211 DEBUG [null main] def.DefaultAutoFlushEventListener (DefaultAutoFlushEventListener.java:53) - Dont need to execute flush 
>  2006-03-22 15:18:18,212 DEBUG [null main] query.HQLQueryPlan (HQLQueryPlan.java:148) - find: select pound.location.state from com.i2rd.occasio.test.BrokenHibernateDowncast$Pound as pound inner join pound.cats as cat where pound.location.name='Anytown' and cat.meanness > 5 
>  2006-03-22 15:18:18,212 DEBUG [null main] engine.QueryParameters (QueryParameters.java:262) - named parameters: {} 
>  2006-03-22 15:18:18,212 DEBUG [null main] jdbc.AbstractBatcher (AbstractBatcher.java:311) - about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 
>  2006-03-22 15:18:18,214 DEBUG [null main] jdbc.AbstractBatcher (AbstractBatcher.java:346) - 
>      select 
>          brokenhibe3_.state as col_0_0_ 
>      from 
>          pound brokenhibe0_ 
>      inner join 
>          pound_cat cats1_ 
>              on brokenhibe0_.id=cats1_.pound_id 
>      inner join 
>          cat brokenhibe2_ 
>              on cats1_.cats_id=brokenhibe2_.id, 
>          city brokenhibe3_ 
>      where 
>          brokenhibe0_.location_id=brokenhibe3_.id 
>          and brokenhibe3_.name='Anytown' 
>          and brokenhibe2_2_.meanness>5 
>  Hibernate: 
>      select 
>          brokenhibe3_.state as col_0_0_ 
>      from 
>          pound brokenhibe0_ 
>      inner join 
>          pound_cat cats1_ 
>              on brokenhibe0_.id=cats1_.pound_id 
>      inner join 
>          cat brokenhibe2_ 
>              on cats1_.cats_id=brokenhibe2_.id, 
>          city brokenhibe3_ 
>      where 
>          brokenhibe0_.location_id=brokenhibe3_.id 
>          and brokenhibe3_.name='Anytown' 
>          and brokenhibe2_2_.meanness>5 
>  2006-03-22 15:18:18,215 DEBUG [null main] jdbc.AbstractBatcher (AbstractBatcher.java:424) - preparing statement 
>  2006-03-22 15:18:18,237 DEBUG [null main] jdbc.AbstractBatcher (AbstractBatcher.java:319) - about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 
>  2006-03-22 15:18:18,239 DEBUG [null main] jdbc.AbstractBatcher (AbstractBatcher.java:470) - closing statement 
>  2006-03-22 15:18:18,252 DEBUG [null main] util.JDBCExceptionReporter (JDBCExceptionReporter.java:63) - could not execute query [select brokenhibe3_.state as col_0_0_ from pound brokenhibe0_ inner join pound_cat cats1_ on brokenhibe0_.id=cats1_.pound_id inner join cat brokenhibe2_ on cats1_.cats_id=brokenhibe2_.id, city brokenhibe3_ where brokenhibe0_.location_id=brokenhibe3_.id and brokenhibe3_.name='Anytown' and brokenhibe2_2_.meanness>5] 
>  org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) 
>     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) 
>     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) 
>     at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139) 
>     at org.hibernate.loader.Loader.getResultSet(Loader.java:1669) 
>     at org.hibernate.loader.Loader.doQuery(Loader.java:662) 
>     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2145) 
>     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
>     at org.hibernate.loader.Loader.list(Loader.java:2024) 
>     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
>     at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
>     at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
>     at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
>     at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
>     at com.i2rd.occasio.test.BrokenHibernateDowncast.main(BrokenHibernateDowncast.java:181) 
>  2006-03-22 15:18:18,253 WARN  [null main] util.JDBCExceptionReporter (JDBCExceptionReporter.java:71) - SQL Error: 0, SQLState: 42P01 
>  2006-03-22 15:18:18,254 ERROR [null main] util.JDBCExceptionReporter (JDBCExceptionReporter.java:72) - ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>  2006-03-22 15:18:18,255 DEBUG [null main] jdbc.JDBCContext (JDBCContext.java:217) - after autocommit 
>  2006-03-22 15:18:18,255 DEBUG [null main] jdbc.ConnectionManager (ConnectionManager.java:296) - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources! 
>  Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query 
>     at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) 
>     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2148) 
>     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
>     at org.hibernate.loader.Loader.list(Loader.java:2024) 
>     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) 
>     at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) 
>     at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
>     at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106) 
>     at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
>     at com.i2rd.occasio.test.BrokenHibernateDowncast.main(BrokenHibernateDowncast.java:181) 
>  Caused by: org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry for table "brokenhibe2_2_" 
>     at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) 
>     at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) 
>     at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) 
>     at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) 
>     at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:139) 
>     at org.hibernate.loader.Loader.getResultSet(Loader.java:1669) 
>     at org.hibernate.loader.Loader.doQuery(Loader.java:662) 
>     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 
>     at org.hibernate.loader.Loader.doList(Loader.java:2145) 
>     ... 8 more 

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