Package org.hibernate.engine.spi

Examples of org.hibernate.engine.spi.NamedSQLQueryDefinition


        LOG.debugf("Checking %s named SQL queries", namedSqlQueries.size());
    itr = namedSqlQueries.entrySet().iterator();
    while ( itr.hasNext() ) {
      final Map.Entry entry = ( Map.Entry ) itr.next();
      final String queryName = ( String ) entry.getKey();
      final NamedSQLQueryDefinition qd = ( NamedSQLQueryDefinition ) entry.getValue();
      // this will throw an error if there's something wrong.
      try {
                LOG.debugf("Checking named SQL query: %s", queryName);
        // TODO : would be really nice to cache the spec on the query-def so as to not have to re-calc the hash;
        // currently not doable though because of the resultset-ref stuff...
        NativeSQLQuerySpecification spec;
        if ( qd.getResultSetRef() != null ) {
          ResultSetMappingDefinition definition = ( ResultSetMappingDefinition ) sqlResultSetMappings.get( qd.getResultSetRef() );
          if ( definition == null ) {
            throw new MappingException( "Unable to find resultset-ref definition: " + qd.getResultSetRef() );
          }
          spec = new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  definition.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        else {
          spec =  new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  qd.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        queryPlanCache.getNativeSQLQueryPlan( spec );
      }
      catch ( QueryException e ) {
View Full Code Here


    }
    else {
      builder.setQueryReturns( new NativeSQLQueryReturn[0] );
    }
   
    NamedSQLQueryDefinition query = builder.createNamedQueryDefinition();
   
    if ( isDefault ) {
      mappings.addDefaultSQLQuery( query.getName(), query );
    }
    else {
      mappings.addSQLQuery( query.getName(), query );
    }
    if ( LOG.isDebugEnabled() ) {
      LOG.debugf( "Binding named native query: %s => %s", queryAnn.name(), queryAnn.query() );
    }
  }
View Full Code Here

    if ( queryAnn == null ) return;
    //ResultSetMappingDefinition mappingDefinition = mappings.getResultSetMapping( queryAnn.resultSetMapping() );
    if ( BinderHelper.isEmptyAnnotationValue( queryAnn.name() ) ) {
      throw new AnnotationException( "A named query must have a name when used in class or package level" );
    }
    NamedSQLQueryDefinition query;
    String resultSetMapping = queryAnn.resultSetMapping();
    if ( !BinderHelper.isEmptyAnnotationValue( resultSetMapping ) ) {
      //sql result set usage
      query = new NamedSQLQueryDefinitionBuilder().setName( queryAnn.name() )
          .setQuery( queryAnn.query() )
          .setResultSetRef( resultSetMapping )
          .setQuerySpaces( null )
          .setCacheable( queryAnn.cacheable() )
          .setCacheRegion(
              BinderHelper.isEmptyAnnotationValue( queryAnn.cacheRegion() ) ?
                  null :
                  queryAnn.cacheRegion()
          )
          .setTimeout( queryAnn.timeout() < 0 ? null : queryAnn.timeout() )
          .setFetchSize( queryAnn.fetchSize() < 0 ? null : queryAnn.fetchSize() )
          .setFlushMode( getFlushMode( queryAnn.flushMode() ) )
          .setCacheMode( getCacheMode( queryAnn.cacheMode() ) )
          .setReadOnly( queryAnn.readOnly() )
          .setComment( BinderHelper.isEmptyAnnotationValue( queryAnn.comment() ) ? null : queryAnn.comment() )
          .setParameterTypes( null )
          .setCallable( queryAnn.callable() )
          .createNamedQueryDefinition();
    }
    else if ( !void.class.equals( queryAnn.resultClass() ) ) {
      //class mapping usage
      //FIXME should be done in a second pass due to entity name?
      final NativeSQLQueryRootReturn entityQueryReturn =
          new NativeSQLQueryRootReturn( "alias1", queryAnn.resultClass().getName(), new HashMap(), LockMode.READ );
      query = new NamedSQLQueryDefinitionBuilder().setName( queryAnn.name() )
          .setQuery( queryAnn.query() )
          .setQueryReturns( new NativeSQLQueryReturn[] {entityQueryReturn} )
          .setQuerySpaces( null )
          .setCacheable( queryAnn.cacheable() )
          .setCacheRegion(
              BinderHelper.isEmptyAnnotationValue( queryAnn.cacheRegion() ) ?
                  null :
                  queryAnn.cacheRegion()
          )
          .setTimeout( queryAnn.timeout() < 0 ? null : queryAnn.timeout() )
          .setFetchSize( queryAnn.fetchSize() < 0 ? null : queryAnn.fetchSize() )
          .setFlushMode( getFlushMode( queryAnn.flushMode() ) )
          .setCacheMode( getCacheMode( queryAnn.cacheMode() ) )
          .setReadOnly( queryAnn.readOnly() )
          .setComment( BinderHelper.isEmptyAnnotationValue( queryAnn.comment() ) ? null : queryAnn.comment() )
          .setParameterTypes( null )
          .setCallable( queryAnn.callable() )
          .createNamedQueryDefinition();
    }
    else {
      throw new NotYetImplementedException( "Pure native scalar queries are not yet supported" );
    }
    mappings.addSQLQuery( query.getName(), query );
    if ( LOG.isDebugEnabled() ) {
      LOG.debugf( "Binding named native query: %s => %s", query.getName(), queryAnn.query() );
    }
  }
View Full Code Here

    }
    itr = namedSqlQueries.entrySet().iterator();
    while ( itr.hasNext() ) {
      final Map.Entry entry = ( Map.Entry ) itr.next();
      final String queryName = ( String ) entry.getKey();
      final NamedSQLQueryDefinition qd = ( NamedSQLQueryDefinition ) entry.getValue();
      // this will throw an error if there's something wrong.
      try {
        LOG.debugf( "Checking named SQL query: %s", queryName );
        // TODO : would be really nice to cache the spec on the query-def so as to not have to re-calc the hash;
        // currently not doable though because of the resultset-ref stuff...
        NativeSQLQuerySpecification spec;
        if ( qd.getResultSetRef() != null ) {
          ResultSetMappingDefinition definition = sqlResultSetMappings.get( qd.getResultSetRef() );
          if ( definition == null ) {
            throw new MappingException( "Unable to find resultset-ref definition: " + qd.getResultSetRef() );
          }
          spec = new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  definition.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        else {
          spec =  new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  qd.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        queryPlanCache.getNativeSQLQueryPlan( spec );
      }
      catch ( QueryException e ) {
View Full Code Here

    }
    itr = namedSqlQueries.entrySet().iterator();
    while ( itr.hasNext() ) {
      final Map.Entry entry = ( Map.Entry ) itr.next();
      final String queryName = ( String ) entry.getKey();
      final NamedSQLQueryDefinition qd = ( NamedSQLQueryDefinition ) entry.getValue();
      // this will throw an error if there's something wrong.
      try {
        if ( debugEnabled ) {
          LOG.debugf( "Checking named SQL query: %s", queryName );
        }
        // TODO : would be really nice to cache the spec on the query-def so as to not have to re-calc the hash;
        // currently not doable though because of the resultset-ref stuff...
        NativeSQLQuerySpecification spec;
        if ( qd.getResultSetRef() != null ) {
          ResultSetMappingDefinition definition = sqlResultSetMappings.get( qd.getResultSetRef() );
          if ( definition == null ) {
            throw new MappingException( "Unable to find resultset-ref definition: " + qd.getResultSetRef() );
          }
          spec = new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  definition.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        else {
          spec =  new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  qd.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        queryPlanCache.getNativeSQLQueryPlan( spec );
      }
      catch ( QueryException e ) {
View Full Code Here

       * If the named query is a HQL query, use getReturnType()
       */
      org.hibernate.Query namedQuery = getSession().getNamedQuery( name );
      //TODO clean this up to avoid downcasting
      final SessionFactoryImplementor factoryImplementor = entityManagerFactory.getSessionFactory();
      final NamedSQLQueryDefinition queryDefinition = factoryImplementor.getNamedSQLQuery( name );
      try {
        if ( queryDefinition != null ) {
          Class<?> actualReturnedClass;

          final NativeSQLQueryReturn[] queryReturns;
          if ( queryDefinition.getQueryReturns() != null ) {
            queryReturns = queryDefinition.getQueryReturns();
          }
          else if ( queryDefinition.getResultSetRef() != null ) {
            final ResultSetMappingDefinition rsMapping = factoryImplementor.getResultSetMapping(
                queryDefinition.getResultSetRef()
            );
            queryReturns = rsMapping.getQueryReturns();
          }
          else {
            throw new AssertionFailure( "Unsupported named query model. Please report the bug in Hibernate EntityManager");
View Full Code Here

    String comment = getString( hints, QueryHints.COMMENT );
    if ( StringHelper.isEmpty( comment ) ) {
      comment = null;
    }
    boolean callable = getBoolean( hints, QueryHints.CALLABLE, name );
    NamedSQLQueryDefinition def;
    if ( StringHelper.isNotEmpty( resultSetMapping ) ) {
      def = new NamedSQLQueryDefinition(
          name,
          query, resultSetMapping, null, cacheable,
          cacheRegion, timeout, fetchSize,
          flushMode, cacheMode, readOnly, comment,
          null, callable
      );
    }
    else {
      String resultClass = JandexHelper.getValueAsString( annotation, "resultClass" );
      if ( void.class.equals( resultClass ) ) {
        throw new NotYetImplementedException( "Pure native scalar queries are not yet supported" );
      }
      def = new NamedSQLQueryDefinition(
          name,
          query, new NativeSQLQueryRootReturn[] {
          new NativeSQLQueryRootReturn(
              "alias1",
              resultClass,
View Full Code Here

        LOG.debugf("Checking %s named SQL queries", namedSqlQueries.size());
    itr = namedSqlQueries.entrySet().iterator();
    while ( itr.hasNext() ) {
      final Map.Entry entry = ( Map.Entry ) itr.next();
      final String queryName = ( String ) entry.getKey();
      final NamedSQLQueryDefinition qd = ( NamedSQLQueryDefinition ) entry.getValue();
      // this will throw an error if there's something wrong.
      try {
                LOG.debugf("Checking named SQL query: %s", queryName);
        // TODO : would be really nice to cache the spec on the query-def so as to not have to re-calc the hash;
        // currently not doable though because of the resultset-ref stuff...
        NativeSQLQuerySpecification spec;
        if ( qd.getResultSetRef() != null ) {
          ResultSetMappingDefinition definition = ( ResultSetMappingDefinition ) sqlResultSetMappings.get( qd.getResultSetRef() );
          if ( definition == null ) {
            throw new MappingException( "Unable to find resultset-ref definition: " + qd.getResultSetRef() );
          }
          spec = new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  definition.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        else {
          spec =  new NativeSQLQuerySpecification(
              qd.getQueryString(),
                  qd.getQueryReturns(),
                  qd.getQuerySpaces()
          );
        }
        queryPlanCache.getNativeSQLQueryPlan( spec );
      }
      catch ( QueryException e ) {
View Full Code Here

  }

  @Override
  public Query getNamedSQLQuery(String queryName) {
    errorIfClosed();
    NamedSQLQueryDefinition nsqlqd = findNamedNativeQuery( queryName );
    Query query = new NoSQLQuery( nsqlqd, this, NO_PARAMETERS );
    query.setComment( "named native query " + queryName );
    return query;
  }
View Full Code Here

    query.setComment( "named native query " + queryName );
    return query;
  }

  private NamedSQLQueryDefinition findNamedNativeQuery(String queryName) {
    NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName );
    if ( nsqlqd == null ) {
      throw new MappingException( "Named native query not found: " + queryName );
    }
    return nsqlqd;
  }
View Full Code Here

TOP

Related Classes of org.hibernate.engine.spi.NamedSQLQueryDefinition

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.