Package org.hibernate.engine.query.sql

Examples of org.hibernate.engine.query.sql.NativeSQLQueryScalarReturn


      definition.addQueryReturn( result );
    }

    for ( ColumnResult column : ann.columns() ) {
      definition.addQueryReturn(
          new NativeSQLQueryScalarReturn(
              mappings.getObjectNameNormalizer().normalizeIdentifierQuoting(
                  column.name()
              ),
              null
          )
View Full Code Here


          );
      definition.addQueryReturn( result );
    }

    for (ColumnResult column : ann.columns()) {
      definition.addQueryReturn( new NativeSQLQueryScalarReturn( column.name(), null ) );
    }

    if ( isDefault ) {
      mappings.addDefaultResultSetMapping( definition );
    }
View Full Code Here

    else {
      Iterator itr = queryReturns.iterator();
      while ( itr.hasNext() ) {
        NativeSQLQueryReturn rtn = ( NativeSQLQueryReturn ) itr.next();
        if ( rtn instanceof NativeSQLQueryScalarReturn ) {
          NativeSQLQueryScalarReturn scalar = ( NativeSQLQueryScalarReturn ) rtn;
          if ( scalar.getType() == null ) {
            autodiscovertypes = true;
            break;
          }
        }
      }
View Full Code Here

    //we never need to apply locks to the SQL
    return null;
  }

  public SQLQuery addScalar(String columnAlias, Type type) {
    queryReturns.add( new NativeSQLQueryScalarReturn( columnAlias, type ) );
    return this;
  }
View Full Code Here

    return this;
  }

  public SQLQuery addScalar(String columnAlias) {
    autodiscovertypes = true;
    queryReturns.add( new NativeSQLQueryScalarReturn( columnAlias, null ) );
    return this;
  }
View Full Code Here

  public List generateCustomReturns(boolean queryHadAliases) {
    List customReturns = new ArrayList();
    Map customReturnsByAlias = new HashMap();
    for ( int i = 0; i < queryReturns.length; i++ ) {
      if ( queryReturns[i] instanceof NativeSQLQueryScalarReturn ) {
        NativeSQLQueryScalarReturn rtn = ( NativeSQLQueryScalarReturn ) queryReturns[i];
        customReturns.add( new ScalarReturn( rtn.getType(), rtn.getColumnAlias() ) );
      }
      else if ( queryReturns[i] instanceof NativeSQLQueryRootReturn ) {
        NativeSQLQueryRootReturn rtn = ( NativeSQLQueryRootReturn ) queryReturns[i];
        String alias = rtn.getAlias();
        EntityAliases entityAliases;
        if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
          entityAliases = new DefaultEntityAliases(
              ( Map ) entityPropertyResultMaps.get( alias ),
              ( SQLLoadable ) alias2Persister.get( alias ),
              ( String ) alias2Suffix.get( alias )
          );
        }
        else {
          entityAliases = new ColumnEntityAliases(
              ( Map ) entityPropertyResultMaps.get( alias ),
              ( SQLLoadable ) alias2Persister.get( alias ),
              ( String ) alias2Suffix.get( alias )
          );
        }
        RootReturn customReturn = new RootReturn(
            alias,
            rtn.getReturnEntityName(),
            entityAliases,
            rtn.getLockMode()
        );
        customReturns.add( customReturn );
        customReturnsByAlias.put( rtn.getAlias(), customReturn );
      }
      else if ( queryReturns[i] instanceof NativeSQLQueryCollectionReturn ) {
        NativeSQLQueryCollectionReturn rtn = ( NativeSQLQueryCollectionReturn ) queryReturns[i];
        String alias = rtn.getAlias();
        SQLLoadableCollection persister = ( SQLLoadableCollection ) alias2CollectionPersister.get( alias );
        boolean isEntityElements = persister.getElementType().isEntityType();
        CollectionAliases collectionAliases;
        EntityAliases elementEntityAliases = null;
        if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
          collectionAliases = new GeneratedCollectionAliases(
              ( Map ) collectionPropertyResultMaps.get( alias ),
              ( SQLLoadableCollection ) alias2CollectionPersister.get( alias ),
              ( String ) alias2CollectionSuffix.get( alias )
          );
          if ( isEntityElements ) {
            elementEntityAliases = new DefaultEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
        }
        else {
          collectionAliases = new ColumnCollectionAliases(
              ( Map ) collectionPropertyResultMaps.get( alias ),
              ( SQLLoadableCollection ) alias2CollectionPersister.get( alias )
          );
          if ( isEntityElements ) {
            elementEntityAliases = new ColumnEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
        }
        CollectionReturn customReturn = new CollectionReturn(
            alias,
            rtn.getOwnerEntityName(),
            rtn.getOwnerProperty(),
            collectionAliases,
                elementEntityAliases,
            rtn.getLockMode()
        );
        customReturns.add( customReturn );
        customReturnsByAlias.put( rtn.getAlias(), customReturn );
      }
      else if ( queryReturns[i] instanceof NativeSQLQueryJoinReturn ) {
        NativeSQLQueryJoinReturn rtn = ( NativeSQLQueryJoinReturn ) queryReturns[i];
        String alias = rtn.getAlias();
        FetchReturn customReturn;
        NonScalarReturn ownerCustomReturn = ( NonScalarReturn ) customReturnsByAlias.get( rtn.getOwnerAlias() );
        if ( alias2CollectionPersister.containsKey( alias ) ) {
          SQLLoadableCollection persister = ( SQLLoadableCollection ) alias2CollectionPersister.get( alias );
          boolean isEntityElements = persister.getElementType().isEntityType();
          CollectionAliases collectionAliases;
          EntityAliases elementEntityAliases = null;
          if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
            collectionAliases = new GeneratedCollectionAliases(
                ( Map ) collectionPropertyResultMaps.get( alias ),
                persister,
                ( String ) alias2CollectionSuffix.get( alias )
            );
            if ( isEntityElements ) {
              elementEntityAliases = new DefaultEntityAliases(
                  ( Map ) entityPropertyResultMaps.get( alias ),
                  ( SQLLoadable ) alias2Persister.get( alias ),
                  ( String ) alias2Suffix.get( alias )
              );
            }
          }
          else {
            collectionAliases = new ColumnCollectionAliases(
                ( Map ) collectionPropertyResultMaps.get( alias ),
                persister
            );
            if ( isEntityElements ) {
              elementEntityAliases = new ColumnEntityAliases(
                  ( Map ) entityPropertyResultMaps.get( alias ),
                  ( SQLLoadable ) alias2Persister.get( alias ),
                  ( String ) alias2Suffix.get( alias )
              );
            }
          }
          customReturn = new CollectionFetchReturn(
              alias,
              ownerCustomReturn,
              rtn.getOwnerProperty(),
              collectionAliases,
                  elementEntityAliases,
              rtn.getLockMode()
          );
        }
        else {
          EntityAliases entityAliases;
          if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
            entityAliases = new DefaultEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
          else {
            entityAliases = new ColumnEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
          customReturn = new EntityFetchReturn(
              alias,
              entityAliases,
              ownerCustomReturn,
              rtn.getOwnerProperty(),
              rtn.getLockMode()
          );
        }
        customReturns.add( customReturn );
        customReturnsByAlias.put( alias, customReturn );
      }
View Full Code Here

          );
      definition.addQueryReturn( result );
    }

    for (ColumnResult column : ann.columns()) {
      definition.addQueryReturn( new NativeSQLQueryScalarReturn( column.name(), null ) );
    }

    if ( isDefault ) {
      mappings.addDefaultResultSetMapping( definition );
    }
View Full Code Here

  public List generateCustomReturns(boolean queryHadAliases) {
    List customReturns = new ArrayList();
    Map customReturnsByAlias = new HashMap();
    for ( int i = 0; i < queryReturns.length; i++ ) {
      if ( queryReturns[i] instanceof NativeSQLQueryScalarReturn ) {
        NativeSQLQueryScalarReturn rtn = ( NativeSQLQueryScalarReturn ) queryReturns[i];
        customReturns.add( new ScalarReturn( rtn.getType(), rtn.getColumnAlias() ) );
      }
      else if ( queryReturns[i] instanceof NativeSQLQueryRootReturn ) {
        NativeSQLQueryRootReturn rtn = ( NativeSQLQueryRootReturn ) queryReturns[i];
        String alias = rtn.getAlias();
        EntityAliases entityAliases;
        if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
          entityAliases = new DefaultEntityAliases(
              ( Map ) entityPropertyResultMaps.get( alias ),
              ( SQLLoadable ) alias2Persister.get( alias ),
              ( String ) alias2Suffix.get( alias )
          );
        }
        else {
          entityAliases = new ColumnEntityAliases(
              ( Map ) entityPropertyResultMaps.get( alias ),
              ( SQLLoadable ) alias2Persister.get( alias ),
              ( String ) alias2Suffix.get( alias )
          );
        }
        RootReturn customReturn = new RootReturn(
            alias,
            rtn.getReturnEntityName(),
            entityAliases,
            rtn.getLockMode()
        );
        customReturns.add( customReturn );
        customReturnsByAlias.put( rtn.getAlias(), customReturn );
      }
      else if ( queryReturns[i] instanceof NativeSQLQueryCollectionReturn ) {
        NativeSQLQueryCollectionReturn rtn = ( NativeSQLQueryCollectionReturn ) queryReturns[i];
        String alias = rtn.getAlias();
        SQLLoadableCollection persister = ( SQLLoadableCollection ) alias2CollectionPersister.get( alias );
        boolean isEntityElements = persister.getElementType().isEntityType();
        CollectionAliases collectionAliases;
        EntityAliases elementEntityAliases = null;
        if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
          collectionAliases = new GeneratedCollectionAliases(
              ( Map ) collectionPropertyResultMaps.get( alias ),
              ( SQLLoadableCollection ) alias2CollectionPersister.get( alias ),
              ( String ) alias2CollectionSuffix.get( alias )
          );
          if ( isEntityElements ) {
            elementEntityAliases = new DefaultEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
        }
        else {
          collectionAliases = new ColumnCollectionAliases(
              ( Map ) collectionPropertyResultMaps.get( alias ),
              ( SQLLoadableCollection ) alias2CollectionPersister.get( alias )
          );
          if ( isEntityElements ) {
            elementEntityAliases = new ColumnEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
        }
        CollectionReturn customReturn = new CollectionReturn(
            alias,
            rtn.getOwnerEntityName(),
            rtn.getOwnerProperty(),
            collectionAliases,
                elementEntityAliases,
            rtn.getLockMode()
        );
        customReturns.add( customReturn );
        customReturnsByAlias.put( rtn.getAlias(), customReturn );
      }
      else if ( queryReturns[i] instanceof NativeSQLQueryJoinReturn ) {
        NativeSQLQueryJoinReturn rtn = ( NativeSQLQueryJoinReturn ) queryReturns[i];
        String alias = rtn.getAlias();
        FetchReturn customReturn;
        NonScalarReturn ownerCustomReturn = ( NonScalarReturn ) customReturnsByAlias.get( rtn.getOwnerAlias() );
        if ( alias2CollectionPersister.containsKey( alias ) ) {
          SQLLoadableCollection persister = ( SQLLoadableCollection ) alias2CollectionPersister.get( alias );
          boolean isEntityElements = persister.getElementType().isEntityType();
          CollectionAliases collectionAliases;
          EntityAliases elementEntityAliases = null;
          if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
            collectionAliases = new GeneratedCollectionAliases(
                ( Map ) collectionPropertyResultMaps.get( alias ),
                persister,
                ( String ) alias2CollectionSuffix.get( alias )
            );
            if ( isEntityElements ) {
              elementEntityAliases = new DefaultEntityAliases(
                  ( Map ) entityPropertyResultMaps.get( alias ),
                  ( SQLLoadable ) alias2Persister.get( alias ),
                  ( String ) alias2Suffix.get( alias )
              );
            }
          }
          else {
            collectionAliases = new ColumnCollectionAliases(
                ( Map ) collectionPropertyResultMaps.get( alias ),
                persister
            );
            if ( isEntityElements ) {
              elementEntityAliases = new ColumnEntityAliases(
                  ( Map ) entityPropertyResultMaps.get( alias ),
                  ( SQLLoadable ) alias2Persister.get( alias ),
                  ( String ) alias2Suffix.get( alias )
              );
            }
          }
          customReturn = new CollectionFetchReturn(
              alias,
              ownerCustomReturn,
              rtn.getOwnerProperty(),
              collectionAliases,
                  elementEntityAliases,
              rtn.getLockMode()
          );
        }
        else {
          EntityAliases entityAliases;
          if ( queryHadAliases || hasPropertyResultMap( alias ) ) {
            entityAliases = new DefaultEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
          else {
            entityAliases = new ColumnEntityAliases(
                ( Map ) entityPropertyResultMaps.get( alias ),
                ( SQLLoadable ) alias2Persister.get( alias ),
                ( String ) alias2Suffix.get( alias )
            );
          }
          customReturn = new EntityFetchReturn(
              alias,
              entityAliases,
              ownerCustomReturn,
              rtn.getOwnerProperty(),
              rtn.getLockMode()
          );
        }
        customReturns.add( customReturn );
        customReturnsByAlias.put( alias, customReturn );
      }
View Full Code Here

          );
      definition.addQueryReturn( result );
    }

    for ( ColumnResult column : ann.columns() ) {
      definition.addQueryReturn( new NativeSQLQueryScalarReturn( column.name(), null ) );
    }

    if (isDefault) {
      mappings.addDefaultResultSetMapping( definition );
    }
View Full Code Here

  public String[] getMappings() {
    return new String[] {};
  }

  public void testNativeSQLQueryScalarReturn() {
    NativeSQLQueryScalarReturn typeNoAlias = new NativeSQLQueryScalarReturn( null, TypeFactory.basic( "int" ) );
    NativeSQLQueryScalarReturn aliasNoType = new NativeSQLQueryScalarReturn( "abc", null );
    NativeSQLQueryScalarReturn aliasTypeInt = new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( "int" ) );
    NativeSQLQueryScalarReturn aliasTypeLong =  new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( "long" ) );
    NativeSQLQueryScalarReturn aliasTypeLongClass =  new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( Long.class.getName() ) );
    NativeSQLQueryScalarReturn aliasTypeString =  new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( "string" ) );
    NativeSQLQueryScalarReturn aliasTypeStringClass =  new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( String.class.getName() ) );

    check( false, typeNoAlias, aliasNoType );
    check( false, typeNoAlias, aliasTypeInt );
    check( false, typeNoAlias, aliasTypeLong );
    check( false, typeNoAlias, aliasTypeLongClass );
    check( false, typeNoAlias, aliasTypeString );
    check( false, typeNoAlias, aliasTypeStringClass );

    check( false, aliasNoType, aliasTypeInt );
    check( false, aliasNoType, aliasTypeLong );
    check( false, aliasNoType, aliasTypeLongClass );
    check( false, aliasNoType, aliasTypeString );
    check( false, aliasNoType, aliasTypeStringClass );

    check( false, aliasTypeInt, aliasTypeLong );
    check( false, aliasTypeInt, aliasTypeLongClass );
    check( false, aliasTypeInt, aliasTypeString );
    check( false, aliasTypeInt, aliasTypeStringClass );

    check( true, aliasTypeLong, aliasTypeLongClass );
    check( false, aliasTypeLong, aliasTypeString );
    check( false, aliasTypeLong, aliasTypeStringClass );

    check( false, aliasTypeLongClass, aliasTypeString );
    check( false, aliasTypeLongClass, aliasTypeStringClass );

    check( true, aliasTypeString, aliasTypeStringClass );

    check( true, typeNoAlias, new NativeSQLQueryScalarReturn( null, TypeFactory.basic( "int" ) ) );
    check( true, aliasNoType, new NativeSQLQueryScalarReturn( "abc", null ) );
    check( true, aliasTypeInt, new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( "int" ) ) );
    check( true, aliasTypeLong, new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( "long" ) ) );
    check( true, aliasTypeLongClass,  new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( Long.class.getName() ) ) );
    check( true, aliasTypeString, new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( "string" ) ) );
    check( true, aliasTypeStringClass, new NativeSQLQueryScalarReturn( "abc", TypeFactory.basic( String.class.getName() ) ) );
  }
View Full Code Here

TOP

Related Classes of org.hibernate.engine.query.sql.NativeSQLQueryScalarReturn

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.