Package org.hibernate.internal

Examples of org.hibernate.internal.AbstractQueryImpl


  throws HibernateException {

        LOG.debugf("Initializing collection: %s using named query: %s", persister.getRole(), queryName);

    //TODO: is there a more elegant way than downcasting?
    AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedSQLQuery(queryName);
    if ( query.getNamedParameters().length>0 ) {
      query.setParameter(
          query.getNamedParameters()[0],
          key,
          persister.getKeyType()
        );
    }
    else {
      query.setParameter( 0, key, persister.getKeyType() );
    }
    query.setCollectionKey( key )
        .setFlushMode( FlushMode.MANUAL )
        .list();

  }
View Full Code Here


    LOG.debugf( "Loading entity: %s using named query: %s", persister.getEntityName(), queryName );

    // IMPL NOTE: essentially we perform the named query (which loads the entity into the PC), and then
    // do an internal lookup of the entity from the PC.

    final AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedQuery( queryName );
    if ( query.hasNamedParameters() ) {
      query.setParameter( query.getNamedParameters()[0], id, persister.getIdentifierType() );
    }
    else {
      query.setParameter( 0, id, persister.getIdentifierType() );
    }

    query.setOptionalId( id );
    query.setOptionalEntityName( persister.getEntityName() );
    query.setOptionalObject( optionalObject );
    query.setFlushMode( FlushMode.MANUAL );
    query.list();

    // now look up the object we are really interested in!
    // (this lets us correctly handle proxies and multi-row or multi-column queries)
    return session.getPersistenceContext().getEntity( session.generateEntityKey( id, persister ) );
View Full Code Here

    if ( ! AbstractQueryImpl.class.isInstance( query ) ) {
      throw new IllegalStateException( "Unknown query type for parameter extraction" );
    }

    HashSet<Parameter<?>> parameters = new HashSet<Parameter<?>>();
    AbstractQueryImpl queryImpl = AbstractQueryImpl.class.cast( query );

    // extract named params
    for ( String name : (Set<String>) queryImpl.getParameterMetadata().getNamedParameterNames() ) {
      final NamedParameterDescriptor descriptor =
          queryImpl.getParameterMetadata().getNamedParameterDescriptor( name );
      Class javaType = namedParameterTypeRedefinition.get( name );
      if ( javaType != null && mightNeedRedefinition( javaType ) ) {
        descriptor.resetExpectedType(
            sfi().getTypeResolver().heuristicType( javaType.getName() )
        );
      }
      else if ( descriptor.getExpectedType() != null ) {
        javaType = descriptor.getExpectedType().getReturnedClass();
      }
      final ParameterImpl parameter = new ParameterImpl( name, javaType );
      parameters.add( parameter );
      if ( descriptor.isJpaStyle() ) {
        if ( jpaPositionalIndices == null ) {
          jpaPositionalIndices = new HashSet<Integer>();
        }
        jpaPositionalIndices.add( Integer.valueOf( name ) );
      }
    }

    // extract positional parameters
    for ( int i = 0, max = queryImpl.getParameterMetadata().getOrdinalParameterCount(); i < max; i++ ) {
      final OrdinalParameterDescriptor descriptor =
          queryImpl.getParameterMetadata().getOrdinalParameterDescriptor( i+1 );
      ParameterImpl parameter = new ParameterImpl(
          i + 1,
          descriptor.getExpectedType() == null
              ? null
              : descriptor.getExpectedType().getReturnedClass()
View Full Code Here

    if ( ! AbstractQueryImpl.class.isInstance( query ) ) {
      throw new IllegalStateException( "Unknown query type for parameter extraction" );
    }

    HashSet<Parameter<?>> parameters = new HashSet<Parameter<?>>();
    AbstractQueryImpl queryImpl = AbstractQueryImpl.class.cast( query );

    // extract named params
    for ( String name : (Set<String>) queryImpl.getParameterMetadata().getNamedParameterNames() ) {
      final NamedParameterDescriptor descriptor =
          queryImpl.getParameterMetadata().getNamedParameterDescriptor( name );
      Class javaType = namedParameterTypeRedefinition.get( name );
      if ( javaType != null && mightNeedRedefinition( javaType ) ) {
        descriptor.resetExpectedType(
            sfi().getTypeResolver().heuristicType( javaType.getName() )
        );
      }
      else if ( descriptor.getExpectedType() != null ) {
        javaType = descriptor.getExpectedType().getReturnedClass();
      }
      final ParameterImpl parameter = new ParameterImpl( name, javaType );
      parameters.add( parameter );
      if ( descriptor.isJpaStyle() ) {
        if ( jpaPositionalIndices == null ) {
          jpaPositionalIndices = new HashSet<Integer>();
        }
        jpaPositionalIndices.add( Integer.valueOf( name ) );
      }
    }

    // extract positional parameters
    for ( int i = 0, max = queryImpl.getParameterMetadata().getOrdinalParameterCount(); i < max; i++ ) {
      final OrdinalParameterDescriptor descriptor =
          queryImpl.getParameterMetadata().getOrdinalParameterDescriptor( i+1 );
      ParameterImpl parameter = new ParameterImpl(
          i + 1,
          descriptor.getExpectedType() == null
              ? null
              : descriptor.getExpectedType().getReturnedClass()
View Full Code Here

    if (request == null) {
      return page;
    }
   
    AbstractQueryImpl impl = (AbstractQueryImpl) query;
   
    String queryString = setPageRequestToHql(impl.getQueryString(),request);
    ReflectionUtils.setFieldValue(impl, "queryString", queryString);
   
    if (request.isCountTotal()) {
      long totalCount = 0;
     
      if (impl.hasNamedParameters()) {
        Map<String,TypedValue> map = ReflectionUtils.getFieldValue(impl, "namedParameters");
        Map<String, Object> values = new HashMap<String, Object>();
       
        for (Map.Entry<String, TypedValue> entry:map.entrySet()) {
          values.put(entry.getKey(), entry.getValue().getValue());
        }
       
        totalCount = countHqlResult(impl.getQueryString(), values);
       
      } else {
        List<Object> values = ReflectionUtils.invokeGetterMethod(impl, "values");
        totalCount = countHqlResult(impl.getQueryString(), values.toArray());
       
      }
     
      page.setTotalItems(totalCount);
    }

    impl.setFirstResult(request.getOffset());
    impl.setMaxResults(request.getPageSize());
   
    List result = impl.list();
    page.setResult(result);

    return page;
  }
View Full Code Here

   */
  protected void setQueryValues(Query query ,Object... values) {
    if (ArrayUtils.isEmpty(values)) {
      return ;
    }
    AbstractQueryImpl impl = (AbstractQueryImpl) query;
    String[] params = impl.getNamedParameters();
   
    int methodParameterPosition = params.length - 1;
   
    if (impl.hasNamedParameters()) {
      for (String p : params) {
        Object o = values[methodParameterPosition--];
        query.setParameter(p, o);
      }
    } else {
View Full Code Here

  }

  public Object load(Serializable id, Object optionalObject, SessionImplementor session) {
        LOG.debugf("Loading entity: %s using named query: %s", persister.getEntityName(), queryName);

    AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedQuery(queryName);
    if ( query.hasNamedParameters() ) {
      query.setParameter(
          query.getNamedParameters()[0],
          id,
          persister.getIdentifierType()
        );
    }
    else {
      query.setParameter( 0, id, persister.getIdentifierType() );
    }
    query.setOptionalId(id);
    query.setOptionalEntityName( persister.getEntityName() );
    query.setOptionalObject(optionalObject);
    query.setFlushMode( FlushMode.MANUAL );
    query.list();

    // now look up the object we are really interested in!
    // (this lets us correctly handle proxies and multi-row or multi-column queries)
    return session.getPersistenceContext().getEntity( session.generateEntityKey( id, persister ) );
View Full Code Here

  throws HibernateException {

        LOG.debugf("Initializing collection: %s using named query: %s", persister.getRole(), queryName);

    //TODO: is there a more elegant way than downcasting?
    AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedSQLQuery(queryName);
    if ( query.getNamedParameters().length>0 ) {
      query.setParameter(
          query.getNamedParameters()[0],
          key,
          persister.getKeyType()
        );
    }
    else {
      query.setParameter( 0, key, persister.getKeyType() );
    }
    query.setCollectionKey( key )
        .setFlushMode( FlushMode.MANUAL )
        .list();

  }
View Full Code Here

  }

  public Object load(Serializable id, Object optionalObject, SessionImplementor session) {
        LOG.debugf("Loading entity: %s using named query: %s", persister.getEntityName(), queryName);

    AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedQuery(queryName);
    if ( query.hasNamedParameters() ) {
      query.setParameter(
          query.getNamedParameters()[0],
          id,
          persister.getIdentifierType()
        );
    }
    else {
      query.setParameter( 0, id, persister.getIdentifierType() );
    }
    query.setOptionalId(id);
    query.setOptionalEntityName( persister.getEntityName() );
    query.setOptionalObject(optionalObject);
    query.setFlushMode( FlushMode.MANUAL );
    query.list();

    // now look up the object we are really interested in!
    // (this lets us correctly handle proxies and multi-row or multi-column queries)
    return session.getPersistenceContext().getEntity( session.generateEntityKey( id, persister ) );
View Full Code Here

  }

  public Object load(Serializable id, Object optionalObject, SessionImplementor session) {
        LOG.debugf("Loading entity: %s using named query: %s", persister.getEntityName(), queryName);

    AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedQuery(queryName);
    if ( query.hasNamedParameters() ) {
      query.setParameter(
          query.getNamedParameters()[0],
          id,
          persister.getIdentifierType()
        );
    }
    else {
      query.setParameter( 0, id, persister.getIdentifierType() );
    }
    query.setOptionalId(id);
    query.setOptionalEntityName( persister.getEntityName() );
    query.setOptionalObject(optionalObject);
    query.setFlushMode( FlushMode.MANUAL );
    query.list();

    // now look up the object we are really interested in!
    // (this lets us correctly handle proxies and multi-row or multi-column queries)
    return session.getPersistenceContext().getEntity( session.generateEntityKey( id, persister ) );
View Full Code Here

TOP

Related Classes of org.hibernate.internal.AbstractQueryImpl

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.