Package org.hibernate.mapping

Examples of org.hibernate.mapping.Value


  }

  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

    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( mappings, 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

        referencedEntityName = MappingTools.getReferencedEntityName(propertyValue.getElement());
    }

    void addCollection() {
        Type type = propertyValue.getType();
        Value value = propertyValue.getElement();

        boolean oneToManyAttachedType = type instanceof BagType || type instanceof SetType || type instanceof MapType || type instanceof ListType;
        boolean inverseOneToMany = (value instanceof OneToMany) && (propertyValue.isInverse());
        boolean owningManyToOneWithJoinTableBidirectional = (value instanceof ManyToOne) && (propertyAuditingData.getRelationMappedBy() != null);
        boolean fakeOneToManyBidirectional = (value instanceof OneToMany) && (propertyAuditingData.getAuditMappedBy() != null);
View Full Code Here

      // If this is not a persistent property, with the same access type as currently checked,
      // it's not audited as well.
      // If the property was already defined by the subclass, is ignored by superclasses
      if ((persistentProperties.contains(property.getName()) && (!auditedPropertiesHolder
          .contains(property.getName())))) {
        Value propertyValue = persistentPropertiesSource.getProperty(property.getName()).getValue();
        if (propertyValue instanceof Component) {
          this.addFromComponentProperty(property, accessType, (Component)propertyValue, allClassAudited);
        } else {
          this.addFromNotComponentProperty(property, accessType, allClassAudited);
        }
      } else if (propertiesGroupMapping.containsKey(property.getName())) {
        // Retrieve embedded component name based on class field.
        final String embeddedName = propertiesGroupMapping.get(property.getName());
        if (!auditedPropertiesHolder.contains(embeddedName)) {
          // Manage properties mapped within <properties> tag.
          Value propertyValue = persistentPropertiesSource.getProperty(embeddedName).getValue();
          this.addFromPropertiesGroup(embeddedName, property, accessType, (Component)propertyValue, allClassAudited);
        }
      }
    }
  }
View Full Code Here

      MemberResolver memberResolver) {
    log.trace( "Starting attribute metadata determination [{}]", attributeContext.getPropertyMapping().getName() );
    final Member member = memberResolver.resolveMember( attributeContext );
    log.trace( "    Determined member [{}]", member );

    final Value value = attributeContext.getPropertyMapping().getValue();
    final org.hibernate.type.Type type = value.getType();
    log.trace( "    determined type [name={}, class={}]", type.getName(), type.getClass().getName() );

    if ( type.isAnyType() ) {
      throw new UnsupportedOperationException( "any not supported yet" );
    }
    else if ( type.isAssociationType() ) {
      // collection or entity
      if ( type.isEntityType() ) {
        // entity
        return new SingularAttributeMetadataImpl<X,Y>(
            attributeContext.getPropertyMapping(),
            attributeContext.getOwnerType(),
            member,
            determineSingularAssociationAttributeType( member )
        );
      }
      else {
        // collection
        if ( value instanceof Collection ) {
          final Collection collValue = (Collection) value;
          final Value elementValue = collValue.getElement();
          final org.hibernate.type.Type elementType = elementValue.getType();

          // First, determine the type of the elements and use that to help determine the
          //     collection type)
          final Attribute.PersistentAttributeType elementPersistentAttributeType;
          final Attribute.PersistentAttributeType persistentAttributeType;
          if ( elementType.isAnyType() ) {
            throw new UnsupportedOperationException( "collection of any not supported yet" );
          }
          final boolean isManyToMany = isManyToMany( member );
          if ( elementValue instanceof Component ) {
            elementPersistentAttributeType = Attribute.PersistentAttributeType.EMBEDDED;
            persistentAttributeType = Attribute.PersistentAttributeType.ELEMENT_COLLECTION;
          }
          else if ( elementType.isAssociationType() ) {
            elementPersistentAttributeType = isManyToMany
                ? Attribute.PersistentAttributeType.MANY_TO_MANY
                : Attribute.PersistentAttributeType.ONE_TO_MANY;
            persistentAttributeType = elementPersistentAttributeType;
          }
          else {
            elementPersistentAttributeType = Attribute.PersistentAttributeType.BASIC;
            persistentAttributeType = Attribute.PersistentAttributeType.ELEMENT_COLLECTION;
          }

          final Attribute.PersistentAttributeType keyPersistentAttributeType;

          // Finally, we determine the type of the map key (if needed)
          if ( value instanceof Map ) {
            final Value keyValue = ( ( Map ) value ).getIndex();
            final org.hibernate.type.Type keyType = keyValue.getType();

            if ( keyType.isAnyType() ) {
              throw new UnsupportedOperationException( "collection of any not supported yet" );
            }
            if ( keyValue instanceof Component ) {
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

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.