Package org.hibernate.persister.entity

Examples of org.hibernate.persister.entity.Queryable$Declarer


      );
    }
  }

  private String getPathEntityName(String path) {
    Queryable persister = ( Queryable ) sessionFactory.getEntityPersister( rootEntityName );
    StringTokenizer tokens = new StringTokenizer( path, "." );
    String componentPath = "";
    while ( tokens.hasMoreTokens() ) {
      componentPath += tokens.nextToken();
      Type type = persister.toType( componentPath );
      if ( type.isAssociationType() ) {
        AssociationType atype = ( AssociationType ) type;
        persister = ( Queryable ) sessionFactory.getEntityPersister(
            atype.getAssociatedEntityName( sessionFactory )
        );
        componentPath = "";
      }
      else if ( type.isComponentType() ) {
        componentPath += '.';
      }
      else {
        throw new QueryException( "not an association: " + componentPath );
      }
    }
    return persister.getEntityName();
  }
View Full Code Here


  public TypedValue getTypedValue(Criteria subcriteria, String propertyName, Object value)
      throws HibernateException {
    // Detect discriminator values...
    if ( value instanceof Class ) {
      Class entityClass = ( Class ) value;
      Queryable q = SessionFactoryHelper.findQueryableUsingImports( sessionFactory, entityClass.getName() );
      if ( q != null ) {
        Type type = q.getDiscriminatorType();
        String stringValue = q.getDiscriminatorSQLValue();
        // Convert the string value into the proper type.
        if ( type instanceof NullableType ) {
          NullableType nullableType = ( NullableType ) type;
          value = nullableType.fromStringValue( stringValue );
        }
View Full Code Here

  String continueFromManyToMany(String entityName, String[] joinColumns, QueryTranslatorImpl q) throws QueryException {
    start( q );
    continuation = true;
    currentName = q.createNameFor( entityName );
    q.addType( currentName, entityName );
    Queryable classPersister = q.getEntityPersister( entityName );
    //QueryJoinFragment join = q.createJoinFragment(useThetaStyleJoin);
    addJoin( currentName, TypeFactory.manyToOne( entityName ), joinColumns );
    currentPropertyMapping = classPersister;
    return currentName;
  }
View Full Code Here

    }

    if ( collectionElementType.isEntityType() ) {
      // an association
      QueryableCollection collectionPersister = q.getCollectionPersister( collectionRole );
      Queryable entityPersister = ( Queryable ) collectionPersister.getElementPersister();
      String clazz = entityPersister.getEntityName();

      final String elementName;
      if ( collectionPersister.isOneToMany() ) {
        elementName = collectionName;
        //allow index() function:
View Full Code Here

      IdentNode ident = ( IdentNode ) constant;
      // Resolve to an identity column.
      ident.resolve(false, true);
    }
    else // IDENT might be the name of a class.
      Queryable queryable = walker.getSessionFactoryHelper().findQueryableUsingImports( constant.getText() );
      if ( isIdent && queryable != null ) {
        constant.setText( queryable.getDiscriminatorSQLValue() );
      }
      // Otherwise, it's a literal.
      else {
        processLiteral( constant );
      }
View Full Code Here

    }
  }

  public void lookupConstant(DotNode node) throws SemanticException {
    String text = ASTUtil.getPathText( node );
    Queryable persister = walker.getSessionFactoryHelper().findQueryableUsingImports( text );
    if ( persister != null ) {
      // the name of an entity class
      final String discrim = persister.getDiscriminatorSQLValue();
      node.setDataType( persister.getDiscriminatorType() );
      if ( InFragment.NULL.equals(discrim) || InFragment.NOT_NULL.equals(discrim) ) {
        throw new InvalidPathException( "subclass test not allowed for null or not null discriminator: '" + text + "'" );
      }
      else {
        setSQLValue( node, text, discrim ); //the class discriminator value
View Full Code Here

  private FromElement createEntityAssociation(
          String role,
          String roleAlias,
          int joinType) throws SemanticException {
    FromElement elem;
    Queryable entityPersister = ( Queryable ) queryableCollection.getElementPersister();
    String associatedEntityName = entityPersister.getEntityName();
    // Get the class name of the associated entity.
    if ( queryableCollection.isOneToMany() ) {
      if ( log.isDebugEnabled() ) {
        log.debug( "createEntityAssociation() : One to many - path = " + path + " role = " + role + " associatedEntityName = " + associatedEntityName );
      }
View Full Code Here

    Iterator iter = entityPersisters.values().iterator();
    while ( iter.hasNext() ) {
      //test this entity to see if we must query it
      EntityPersister testPersister = (EntityPersister) iter.next();
      if ( testPersister instanceof Queryable ) {
        Queryable testQueryable = (Queryable) testPersister;
        String testClassName = testQueryable.getEntityName();
        boolean isMappedClass = className.equals(testClassName);
        if ( testQueryable.isExplicitPolymorphism() ) {
          if ( isMappedClass ) {
            return new String[] {className}; //NOTE EARLY EXIT
          }
        }
        else {
          if (isMappedClass) {
            results.add(testClassName);
          }
          else {
            final Class mappedClass = testQueryable.getMappedClass( EntityMode.POJO );
            if ( mappedClass!=null && clazz.isAssignableFrom( mappedClass ) ) {
              final boolean assignableSuperclass;
              if ( testQueryable.isInherited() ) {
                Class mappedSuperclass = getEntityPersister( testQueryable.getMappedSuperclass() ).getMappedClass( EntityMode.POJO);
                assignableSuperclass = clazz.isAssignableFrom(mappedSuperclass);
              }
              else {
                assignableSuperclass = false;
              }
View Full Code Here

    return classAlias;
    //return classAlias == null ? className : classAlias;
  }

  private String getTableName() {
    Queryable queryable = getQueryable();
    return ( queryable != null ) ? queryable.getTableName() : "{none}";
  }
View Full Code Here

    if ( propertySource.isComponentType() ) {
      // property name is a sub-path of a component...
      return;
    }

    Queryable persister = getQueryable();
    if ( persister != null ) {
      try {
        Queryable.Declarer propertyDeclarer = persister.getSubclassPropertyDeclarer( propertyName );
        if ( log.isTraceEnabled() ) {
          log.trace( "handling property dereference [" + persister.getEntityName() + " (" + getClassAlias() + ") -> " + propertyName + " (" + propertyDeclarer + ")]" );
        }
        if ( propertyDeclarer == Queryable.Declarer.SUBCLASS ) {
          dereferencedBySubclassProperty = true;
          includeSubclasses = true;
        }
View Full Code Here

TOP

Related Classes of org.hibernate.persister.entity.Queryable$Declarer

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.