public TupleBuilderTransformer(org.hibernate.Query hqlQuery) { final Type[] resultTypes = hqlQuery.getReturnTypes(); final int tupleSize = resultTypes.length; this.tupleElements = CollectionHelper.arrayList( tupleSize ); final String[] aliases = hqlQuery.getReturnAliases(); final boolean hasAliases = aliases != null && aliases.length > 0; this.tupleElementsByAlias = hasAliases ? CollectionHelper.<String, HqlTupleElementImpl>mapOfSize( tupleSize ) : Collections.<String, HqlTupleElementImpl>emptyMap(); for ( int i = 0; i < tupleSize; i++ ) { final HqlTupleElementImpl tupleElement = new HqlTupleElementImpl( i, aliases == null ? null : aliases[i], resultTypes[i] ); tupleElements.add( tupleElement ); if ( hasAliases ) { final String alias = aliases[i]; if ( alias != null ) { tupleElementsByAlias.put( alias, tupleElement ); } } } }
@Test @TestForIssue( jiraKey = "HHH-1464" ) public void testQueryMetadataRetrievalWithFetching() { // HHH-1464 : there was a problem due to the fact they we polled // the shallow version of the query plan to get the metadata. Session s = openSession(); Query query = s.createQuery( "from Animal a inner join fetch a.mother" ); assertEquals( 1, query.getReturnTypes().length ); assertNull( query.getReturnAliases() ); s.close(); }
/** * Returns the aliases of the HQL query. * * @return the aliases of the HQL query */ public String[] getReturnAliases() { return query.getReturnAliases(); }
@Override public String[] getReturnAliases() { return query.getReturnAliases(); }
@Override public String[] getReturnAliases() throws HibernateException { return query.getReturnAliases(); }
public String[] getReturnAliases() throws HibernateException { return query.getReturnAliases(); }
public TupleBuilderTransformer(org.hibernate.Query hqlQuery) { final Type[] resultTypes = hqlQuery.getReturnTypes(); final int tupleSize = resultTypes.length; this.tupleElements = CollectionHelper.arrayList( tupleSize ); final String[] aliases = hqlQuery.getReturnAliases(); final boolean hasAliases = aliases != null && aliases.length > 0; this.tupleElementsByAlias = hasAliases ? CollectionHelper.<String, HqlTupleElementImpl>mapOfSize( tupleSize ) : Collections.<String, HqlTupleElementImpl>emptyMap(); for ( int i = 0; i < tupleSize; i++ ) { final HqlTupleElementImpl tupleElement = new HqlTupleElementImpl( i, aliases == null ? null : aliases[i], resultTypes[i] ); tupleElements.add( tupleElement ); if ( hasAliases ) { final String alias = aliases[i]; if ( alias != null ) { tupleElementsByAlias.put( alias, tupleElement ); } } } }