Package org.hibernate.engine.query.spi

Examples of org.hibernate.engine.query.spi.ParameterMetadata


  public FullTextQuery createFullTextQuery(org.apache.lucene.search.Query luceneQuery, Class... entities) {
    return new FullTextQueryImpl(
        luceneQuery,
        entities,
        sessionImplementor,
        new ParameterMetadata( null, null )
    );
  }
View Full Code Here


    // Use existing Hibernate ORM special-purpose parser to extract the parameters metadata.
    // I think we have the same details in our AST already, but I keep this for now to not
    // diverge too much from ORM code.
    try {
      HQLQueryPlan plan = new HQLQueryPlan( queryString, false, enabledFilters, factory );
      ParameterMetadata parameterMetadata = plan.getParameterMetadata();
      //TODO make sure the HQLQueryPlan et al are cached at some level
      OgmQuery query = new OgmQuery( queryString, getFlushMode(), this, parameterMetadata, getQueryParserService() );
      query.setComment( queryString );
      return query;
    }
View Full Code Here

  private final MongoDBDatastoreProvider provider;
  private final Class<?> entityType;
  private final DBObject projections;

  public MongoDBQueryImpl(Class<?> entityType, DBObject query, DBObject projections, OgmSession session) {
    super( query.toString(), null, session.getDelegate(), new ParameterMetadata( null, null ) );
    this.query = query;
    this.entityType = entityType;
    this.projections = projections;
    this.provider = (MongoDBDatastoreProvider) session.getSessionFactory().getServiceRegistry().getService( DatastoreProvider.class );
  }
View Full Code Here

    else {
      NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName );
      if ( nsqlqd==null ) {
        throw new MappingException( "Named query not known: " + queryName );
      }
      ParameterMetadata parameterMetadata = factory.getQueryPlanCache().getSQLParameterMetadata( nsqlqd.getQueryString() );
      query = new SQLQueryImpl(
          nsqlqd,
              this,
          parameterMetadata
      );
View Full Code Here

              description.isJpaStyle()
          )
      );
    }

    return new ParameterMetadata( ordinalDescriptors, namedParamDescriptorMap );
  }
View Full Code Here

        .getService( GridDialect.class )
        .getParameterMetadataBuilder();
  }

  public ParameterMetadata getParameterMetadata(final String noSqlQuery)  {
    ParameterMetadata metadata = parameterMetadataCache.get( noSqlQuery );

    if ( metadata == null ) {
      metadata = parameterMetadataBuilder.buildParameterMetadata( noSqlQuery );

      ParameterMetadata cached = parameterMetadataCache.putIfAbsent( noSqlQuery, metadata );
      if ( cached != null ) {
        metadata = cached;
      }
    }
View Full Code Here

    else {
      NamedSQLQueryDefinition nsqlqd = factory.getNamedSQLQuery( queryName );
      if ( nsqlqd==null ) {
        throw new MappingException( "Named query not known: " + queryName );
      }
      ParameterMetadata parameterMetadata = factory.getQueryPlanCache().getSQLParameterMetadata( nsqlqd.getQueryString() );
      query = new SQLQueryImpl(
          nsqlqd,
              this,
          parameterMetadata
      );
View Full Code Here

    // Use existing Hibernate ORM special-purpose parser to extract the parameters metadata.
    // I think we have the same details in our AST already, but I keep this for now to not
    // diverge too much from ORM code.
    try {
      HQLQueryPlan plan = new HQLQueryPlan( queryString, false, enabledFilters, factory );
      ParameterMetadata parameterMetadata = plan.getParameterMetadata();
      //TODO make sure the HQLQueryPlan et al are cached at some level
      OgmQuery query = new OgmQuery( queryString, getFlushMode(), this, parameterMetadata, getQueryParserService() );
      query.setComment( queryString );
      return query;
    }
View Full Code Here

      throw new IllegalStateException( "Unknown query type for parameter extraction" );
    }

    boolean hadJpaPositionalParameters = false;

    final ParameterMetadata parameterMetadata = org.hibernate.internal.AbstractQueryImpl.class.cast( query ).getParameterMetadata();

    // extract named params
    for ( String name : (Set<String>) parameterMetadata.getNamedParameterNames() ) {
      final NamedParameterDescriptor descriptor = parameterMetadata.getNamedParameterDescriptor( name );
      Class javaType = namedParameterTypeRedefinition.get( name );
      if ( javaType != null && mightNeedRedefinition( javaType, descriptor.getExpectedType() ) ) {
        descriptor.resetExpectedType(
            sfi().getTypeResolver().heuristicType( javaType.getName() )
        );
      }
      else if ( descriptor.getExpectedType() != null ) {
        javaType = descriptor.getExpectedType().getReturnedClass();
      }

      if ( descriptor.isJpaStyle() ) {
        hadJpaPositionalParameters = true;
        final Integer position = Integer.valueOf( name );
        registerParameter( new JpaPositionalParameterRegistrationImpl( this, query, position, javaType ) );
      }
      else {
        registerParameter( new ParameterRegistrationImpl( this, query, name, javaType ) );
      }
    }

    if ( hadJpaPositionalParameters ) {
      if ( parameterMetadata.getOrdinalParameterCount() > 0 ) {
        throw new IllegalArgumentException(
            "Cannot mix JPA positional parameters and native Hibernate positional/ordinal parameters"
        );
      }
    }

    // extract Hibernate native positional parameters
    for ( int i = 0, max = parameterMetadata.getOrdinalParameterCount(); i < max; i++ ) {
      final OrdinalParameterDescriptor descriptor = parameterMetadata.getOrdinalParameterDescriptor( i + 1 );
      Class javaType = descriptor.getExpectedType() == null ? null : descriptor.getExpectedType().getReturnedClass();
      registerParameter( new ParameterRegistrationImpl( this, query, i+1, javaType ) );
    }
  }
View Full Code Here

    // Use existing Hibernate ORM special-purpose parser to extract the parameters metadata.
    // I think we have the same details in our AST already, but I keep this for now to not
    // diverge too much from ORM code.
    try {
      HQLQueryPlan plan = new HQLQueryPlan( queryString, false, enabledFilters, factory );
      ParameterMetadata parameterMetadata = plan.getParameterMetadata();
      //TODO make sure the HQLQueryPlan et al are cached at some level
      OgmQuery query = new OgmQuery( queryString, getFlushMode(), this, parameterMetadata, getQueryParserService() );
      query.setComment( queryString );
      return query;
    }
View Full Code Here

TOP

Related Classes of org.hibernate.engine.query.spi.ParameterMetadata

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.