Package org.hibernate.mapping

Examples of org.hibernate.mapping.Value


        throw new AnnotationException(
            "Map key property not found: " + collType + "." + mapKeyPropertyName
        );
      }
      org.hibernate.mapping.Map map = (org.hibernate.mapping.Map) this.collection;
      Value indexValue = createFormulatedValue( mapProperty.getValue(), map, targetPropertyName, associatedClass );
      map.setIndex( indexValue );
    }
    else {
      //this is a true Map mapping
      //TODO ugly copy/pastle from CollectionBinder.bindManyToManySecondPass
View Full Code Here


  }

  protected Value createFormulatedValue(
      Value value, Collection collection, String targetPropertyName, PersistentClass associatedClass
  ) {
    Value element = collection.getElement();
    String fromAndWhere = null;
    if ( !( element instanceof OneToMany ) ) {
      String referencedPropertyName = null;
      if ( element instanceof ToOne ) {
        referencedPropertyName = ( (ToOne) element ).getReferencedPropertyName();
      }
      else if ( element instanceof DependantValue ) {
        //TODO this never happen I think
        if ( propertyName != null ) {
          referencedPropertyName = collection.getReferencedPropertyName();
        }
        else {
          throw new AnnotationException( "SecondaryTable JoinColumn cannot reference a non primary key" );
        }
      }
      Iterator referencedEntityColumns;
      if ( referencedPropertyName == null ) {
        referencedEntityColumns = associatedClass.getIdentifier().getColumnIterator();
      }
      else {
        Property referencedProperty = associatedClass.getRecursiveProperty( referencedPropertyName );
        referencedEntityColumns = referencedProperty.getColumnIterator();
      }
      String alias = "$alias$";
      StringBuilder fromAndWhereSb = new StringBuilder( " from " )
          .append( associatedClass.getTable().getName() )
              //.append(" as ") //Oracle doesn't support it in subqueries
          .append( " " )
          .append( alias ).append( " where " );
      Iterator collectionTableColumns = element.getColumnIterator();
      while ( collectionTableColumns.hasNext() ) {
        Column colColumn = (Column) collectionTableColumns.next();
        Column refColumn = (Column) referencedEntityColumns.next();
        fromAndWhereSb.append( alias ).append( '.' ).append( refColumn.getQuotedName() )
            .append( '=' ).append( colColumn.getQuotedName() ).append( " and " );
View Full Code Here

    }
    return followers;
  }

  private Iterator getSubPropertyIterator(PersistentClass pc, String reducedName) {
    Value value = pc.getRecursiveProperty( reducedName ).getValue();
    Iterator parentPropIter;
    if ( value instanceof Component ) {
      Component comp = (Component) value;
      parentPropIter = comp.getPropertyIterator();
    }
View Full Code Here

    }
  }

  public void bindDiscriminatorValue() {
    if ( StringHelper.isEmpty( discriminatorValue ) ) {
      Value discriminator = persistentClass.getDiscriminator();
      if ( discriminator == null ) {
        persistentClass.setDiscriminatorValue( name );
      }
      else if ( "character".equals( discriminator.getType().getName() ) ) {
        throw new AnnotationException(
            "Using default @DiscriminatorValue for a discriminator of type CHAR is not safe"
        );
      }
      else if ( "integer".equals( discriminator.getType().getName() ) ) {
        persistentClass.setDiscriminatorValue( String.valueOf( name.hashCode() ) );
      }
      else {
        persistentClass.setDiscriminatorValue( name ); //Spec compliant
      }
View Full Code Here

    while ( iter.hasNext() ) {
      Element subnode = (Element) iter.next();
      String name = subnode.getName();
      String propertyName = subnode.attributeValue( "name" );

      Value value = null;
      if ( "many-to-one".equals( name ) ) {
        value = new ManyToOne( table );
        bindManyToOne( subnode, (ManyToOne) value, propertyName, true, mappings );
      }
      else if ( "any".equals( name ) ) {
View Full Code Here

      String propertyName = getPropertyName( subnode );
      String subpath = propertyName == null ? null : StringHelper
        .qualify( path, propertyName );

      CollectionType collectType = CollectionType.collectionTypeFromString( name );
      Value value = null;
      if ( collectType != null ) {
        Collection collection = collectType.create(
            subnode,
            subpath,
            component.getOwner(),
View Full Code Here

      Element subnode = (Element) iter.next();
      String name = subnode.getName();
      String propertyName = subnode.attributeValue( "name" );

      CollectionType collectType = CollectionType.collectionTypeFromString( name );
      Value value = null;
      if ( collectType != null ) {
        Collection collection = collectType.create(
            subnode,
            StringHelper.qualify( entityName, propertyName ),
            persistentClass,
View Full Code Here

         */
        if (pc == null)
          throw new MappingException("dotted notation in <return-join> or <load_collection> not yet supported");
        int dotIndex = name.lastIndexOf( '.' );
        String reducedName = name.substring( 0, dotIndex );
        Value value = pc.getRecursiveProperty( reducedName ).getValue();
        Iterator parentPropIter;
        if ( value instanceof Component ) {
          Component comp = (Component) value;
          parentPropIter = comp.getPropertyIterator();
        }
View Full Code Here

    // DISCRIMINATOR

    final Object discriminatorValue;
    if ( persistentClass.isPolymorphic() ) {
      Value discrimValue = persistentClass.getDiscriminator();
      if (discrimValue==null) {
        throw new MappingException("discriminator mapping required for single table polymorphic persistence");
      }
      forceDiscriminator = persistentClass.isForceDiscriminator();
      Selectable selectable = (Selectable) discrimValue.getColumnIterator().next();
      if ( discrimValue.hasFormula() ) {
        Formula formula = (Formula) selectable;
        discriminatorFormula = formula.getFormula();
        discriminatorFormulaTemplate = formula.getTemplate( factory.getDialect(), factory.getSqlFunctionRegistry() );
        discriminatorColumnName = null;
        discriminatorAlias = "clazz_";
      }
      else {
        Column column = (Column) selectable;
        discriminatorColumnName = column.getQuotedName( factory.getDialect() );
        discriminatorAlias = column.getAlias( factory.getDialect(), persistentClass.getRootTable() );
        discriminatorFormula = null;
        discriminatorFormulaTemplate = null;
      }
      discriminatorType = persistentClass.getDiscriminator().getType();
      if ( persistentClass.isDiscriminatorValueNull() ) {
        discriminatorValue = NULL_DISCRIMINATOR;
        discriminatorSQLValue = InFragment.NULL;
        discriminatorInsertable = false;
      }
      else if ( persistentClass.isDiscriminatorValueNotNull() ) {
        discriminatorValue = NOT_NULL_DISCRIMINATOR;
        discriminatorSQLValue = InFragment.NOT_NULL;
        discriminatorInsertable = false;
      }
      else {
        discriminatorInsertable = persistentClass.isDiscriminatorInsertable() && !discrimValue.hasFormula();
        try {
          DiscriminatorType dtype = (DiscriminatorType) discriminatorType;
          discriminatorValue = dtype.stringToObject( persistentClass.getDiscriminatorValue() );
          discriminatorSQLValue = dtype.objectToSQLString( discriminatorValue, factory.getDialect() );
        }
View Full Code Here

    while ( iter.hasNext() ) {
      Element subnode = (Element) iter.next();
      String name = subnode.getName();
      String propertyName = subnode.attributeValue( "name" );

      Value value = null;
      if ( "many-to-one".equals( name ) ) {
        value = new ManyToOne( table );
        bindManyToOne( subnode, (ManyToOne) value, propertyName, true, mappings );
      }
      else if ( "any".equals( name ) ) {
View Full Code Here

TOP

Related Classes of org.hibernate.mapping.Value

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.