Package org.hibernate.metamodel.binding

Examples of org.hibernate.metamodel.binding.EntityBinding


  private void resolve(EntityReferencingAttributeBinding attributeBinding) {
    if ( attributeBinding.getReferencedEntityName() == null ) {
      throw new IllegalArgumentException( "attributeBinding has null entityName: " + attributeBinding.getAttribute().getName() );
    }
    EntityBinding entityBinding = metadata.getEntityBinding( attributeBinding.getReferencedEntityName() );
    if ( entityBinding == null ) {
      throw new org.hibernate.MappingException(
          "Attribute [" + attributeBinding.getAttribute().getName() +
          "] refers to unknown entity: [" + attributeBinding.getReferencedEntityName() + "]" );
    }
    AttributeBinding referencedAttributeBinding =
        attributeBinding.isPropertyReference() ?
            entityBinding.getAttributeBinding( attributeBinding.getReferencedAttributeName() ) :
            entityBinding.getEntityIdentifier().getValueBinding();
    if ( referencedAttributeBinding == null ) {
      // TODO: does attribute name include path w/ entity name?
      throw new MappingException(
          "Attribute [" + attributeBinding.getAttribute().getName() +
          "] refers to unknown attribute: [" + attributeBinding.getReferencedEntityName() + "]"
View Full Code Here


    Map<String,ClassMetadata> classMeta = new HashMap<String,ClassMetadata>();
    for ( EntityBinding model : metadata.getEntityBindings() ) {
      // TODO: should temp table prep happen when metadata is being built?
      //model.prepareTemporaryTables( metadata, getDialect() );
      // cache region is defined by the root-class in the hierarchy...
      EntityBinding rootEntityBinding = metadata.getRootEntityBinding( model.getEntity().getName() );
      EntityRegionAccessStrategy accessStrategy = null;
      if ( settings.isSecondLevelCacheEnabled() &&
          rootEntityBinding.getHierarchyDetails().getCaching() != null &&
          model.getHierarchyDetails().getCaching() != null &&
          model.getHierarchyDetails().getCaching().getAccessType() != null ) {
        final String cacheRegionName = cacheRegionPrefix + rootEntityBinding.getHierarchyDetails().getCaching().getRegion();
        accessStrategy = EntityRegionAccessStrategy.class.cast( entityAccessStrategies.get( cacheRegionName ) );
        if ( accessStrategy == null ) {
          final AccessType accessType = model.getHierarchyDetails().getCaching().getAccessType();
          if ( traceEnabled ) {
            LOG.tracev( "Building cache for entity data [{0}]", model.getEntity().getName() );
View Full Code Here

    Map<String,ClassMetadata> classMeta = new HashMap<String,ClassMetadata>();
    for ( EntityBinding model : metadata.getEntityBindings() ) {
      // TODO: should temp table prep happen when metadata is being built?
      //model.prepareTemporaryTables( metadata, getDialect() );
      // cache region is defined by the root-class in the hierarchy...
      EntityBinding rootEntityBinding = metadata.getRootEntityBinding( model.getEntity().getName() );
      EntityRegionAccessStrategy accessStrategy = null;
      if ( settings.isSecondLevelCacheEnabled() &&
          rootEntityBinding.getHierarchyDetails().getCaching() != null &&
          model.getHierarchyDetails().getCaching() != null &&
          model.getHierarchyDetails().getCaching().getAccessType() != null ) {
        final String cacheRegionName = cacheRegionPrefix + rootEntityBinding.getHierarchyDetails().getCaching().getRegion();
        accessStrategy = EntityRegionAccessStrategy.class.cast( entityAccessStrategies.get( cacheRegionName ) );
        if ( accessStrategy == null ) {
          final AccessType accessType = model.getHierarchyDetails().getCaching().getAccessType();
          if ( LOG.isTraceEnabled() ) {
            LOG.tracev( "Building cache for entity data [{0}]", model.getEntity().getName() );
View Full Code Here

    Map<String,ClassMetadata> classMeta = new HashMap<String,ClassMetadata>();
    for ( EntityBinding model : metadata.getEntityBindings() ) {
      // TODO: should temp table prep happen when metadata is being built?
      //model.prepareTemporaryTables( metadata, getDialect() );
      // cache region is defined by the root-class in the hierarchy...
      EntityBinding rootEntityBinding = metadata.getRootEntityBinding( model.getEntity().getName() );
      EntityRegionAccessStrategy accessStrategy = null;
      if ( settings.isSecondLevelCacheEnabled() &&
          rootEntityBinding.getHierarchyDetails().getCaching() != null &&
          model.getHierarchyDetails().getCaching() != null &&
          model.getHierarchyDetails().getCaching().getAccessType() != null ) {
        final String cacheRegionName = cacheRegionPrefix + rootEntityBinding.getHierarchyDetails().getCaching().getRegion();
        accessStrategy = EntityRegionAccessStrategy.class.cast( entityAccessStrategies.get( cacheRegionName ) );
        if ( accessStrategy == null ) {
          final AccessType accessType = model.getHierarchyDetails().getCaching().getAccessType();
          if ( LOG.isTraceEnabled() ) {
            LOG.tracev( "Building cache for entity data [{0}]", model.getEntity().getName() );
View Full Code Here

  RootEntityBinder(HibernateMappingBinder hibernateMappingBinder, Element entityElement) {
    super( hibernateMappingBinder, entityElement );
  }

  public void process(Element entityElement) {
    EntityBinding entityBinding = new EntityBinding();
    basicEntityBinding( entityElement, entityBinding, null );
    basicTableBinding( entityElement, entityBinding );

    Attribute mutableAttribute = entityElement.attribute( "mutable" );
    if ( mutableAttribute != null ) {
      entityBinding.setMutable( Boolean.valueOf( mutableAttribute.getValue() ) );
    }

    Attribute whereAttribute = entityElement.attribute( "where" );
    if ( whereAttribute != null ) {
      entityBinding.setWhereFilter( whereAttribute.getValue() );
    }

    Attribute polymorphismAttribute = entityElement.attribute( "polymorphism" );
    if ( polymorphismAttribute != null ) {
      entityBinding.setExplicitPolymorphism( "explicit".equals( polymorphismAttribute.getValue() ) );
    }

    Attribute rowidAttribute = entityElement.attribute( "rowid" );
    if ( rowidAttribute != null ) {
      entityBinding.setRowId( rowidAttribute.getValue() );
    }

    bindIdentifier( entityElement, entityBinding );
    bindDiscriminator( entityElement, entityBinding );
    bindVersion( entityElement, entityBinding );
View Full Code Here

    this.meta = metadata;
    this.superType = superType;
  }

  public EntityBinding bind() {
    EntityBinding entityBinding = new EntityBinding();
    EntityBindingStateImpl entityBindingState = new EntityBindingStateImpl( superType, entityClass );

    bindJpaEntityAnnotation( entityBindingState );
    bindHibernateEntityAnnotation( entityBindingState ); // optional hibernate specific @org.hibernate.annotations.Entity
    bindTable( entityBinding );

    // bind entity level annotations
    bindWhereFilter( entityBindingState );
    bindJpaCaching( entityBindingState );
    bindHibernateCaching( entityBindingState );
    bindProxy( entityBindingState );
    bindSynchronize( entityBindingState );
    bindCustomSQL( entityBindingState );
    bindRowId( entityBindingState );
    bindBatchSize( entityBindingState );
    entityBinding.initialize( meta, entityBindingState );

    bindInheritance( entityBinding );

    // bind all attributes - simple as well as associations
    bindAttributes( entityBinding );
View Full Code Here

    return entityBindingMap.get( entityName );
  }

  @Override
  public EntityBinding getRootEntityBinding(String entityName) {
    EntityBinding rootEntityBinding = rootEntityBindingMap.get( entityName );
    if ( rootEntityBinding == null ) {
      EntityBinding entityBinding = entityBindingMap.get( entityName );
      if ( entityBinding == null ) {
        throw new IllegalStateException( "Unknown entity binding: " + entityName );
      }
      if ( entityBinding.isRoot() ) {
        rootEntityBinding = entityBinding;
      }
      else {
        if ( entityBinding.getEntity().getSuperType() == null ) {
          throw new IllegalStateException( "Entity binding has no root: " + entityName );
        }
        rootEntityBinding = getRootEntityBinding( entityBinding.getEntity().getSuperType().getName() );
      }
      rootEntityBindingMap.put( entityName, rootEntityBinding );
    }
    return rootEntityBinding;
  }
View Full Code Here

    return identifierGeneratorFactory;
  }

  @Override
  public Type getIdentifierType(String entityName) throws MappingException {
    EntityBinding entityBinding = getEntityBinding( entityName );
    if ( entityBinding == null ) {
      throw new MappingException( "Entity binding not known: " + entityName );
    }
    return entityBinding
        .getEntityIdentifier()
        .getValueBinding()
        .getHibernateTypeDescriptor()
        .getExplicitType();
  }
View Full Code Here

        .getExplicitType();
  }

  @Override
  public String getIdentifierPropertyName(String entityName) throws MappingException {
    EntityBinding entityBinding = getEntityBinding( entityName );
    if ( entityBinding == null ) {
      throw new MappingException( "Entity binding not known: " + entityName );
    }
    AttributeBinding idBinding = entityBinding.getEntityIdentifier().getValueBinding();
    return idBinding == null ? null : idBinding.getAttribute().getName();
  }
View Full Code Here

    return idBinding == null ? null : idBinding.getAttribute().getName();
  }

  @Override
  public Type getReferencedPropertyType(String entityName, String propertyName) throws MappingException {
    EntityBinding entityBinding = getEntityBinding( entityName );
    if ( entityBinding == null ) {
      throw new MappingException( "Entity binding not known: " + entityName );
    }
    // TODO: should this call EntityBinding.getReferencedAttributeBindingString), which does not exist yet?
    AttributeBinding attributeBinding = entityBinding.getAttributeBinding( propertyName );
    if ( attributeBinding == null ) {
      throw new MappingException( "unknown property: " + entityName + '.' + propertyName );
    }
    return attributeBinding.getHibernateTypeDescriptor().getExplicitType();
  }
View Full Code Here

TOP

Related Classes of org.hibernate.metamodel.binding.EntityBinding

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.