Package org.hibernate.ogm.datastore.spi

Examples of org.hibernate.ogm.datastore.spi.Association


      if ( association != null ) {
        couchDBAssociation = CouchDBAssociation.fromAssociationDocument( association );
      }
    }

    return couchDBAssociation != null ? new Association( new CouchDBAssociationSnapshot( couchDBAssociation, key ) ) : null;
  }
View Full Code Here


    else {
      AssociationDocument association = new AssociationDocument( Identifier.createAssociationId( key ) );
      couchDBAssociation = CouchDBAssociation.fromAssociationDocument( association );
    }

    return new Association( new CouchDBAssociationSnapshot( couchDBAssociation, key ) );
  }
View Full Code Here

        .key( id )
        .keyColumnNames( persister.getKeyColumnNames() )
        .keyGridType( persister.getKeyGridType() )
        .collectionPersister( persister )
        .session( session );
      Association assoc = metadataProvider.getCollectionMetadataOrNull();
      if ( assoc != null ) {
        for ( RowKey rowKey : assoc.getKeys() ) {
          resultset.addTuple( assoc.get( rowKey ) );
        }
      }
    }
    return resultset;
  }
View Full Code Here

    if ( collectionMetadata == null ) {
      // Compute bi-directionality first
      AssociationKey key = getCollectionMetadataKey();
      if ( isBidirectional == Boolean.FALSE ){
        //fake association to prevent unidirectional associations to keep record of the inverse side
        collectionMetadata = new Association( new MapAssociationSnapshot( Collections.EMPTY_MAP ) );
      }
      else {
        collectionMetadata = gridDialect.getAssociation( key, this.getAssociationContext() );
        if (collectionMetadata == null) {
          collectionMetadata = gridDialect.createAssociation( key );
View Full Code Here

        .keyGridType( gridUniqueKeyType )
        //does not set .collectionPersister as it does not make sense here for an entity
        .associationKeyMetadata( associationKeyMetadata )
        .session( session )
        .propertyType( getPropertyTypes()[propertyIndex] );
    final Association ids = associationPersister.getAssociationOrNull();

    if (ids == null || ids.size() == 0 ) {
      return null;
    }
    else if (ids.size() == 1) {
      //EntityLoader#loadByUniqueKey uses a null object and LockMode.NONE
      //there is only one element in the list, so get the first
      Tuple tuple = ids.get( ids.getKeys().iterator().next() );
      final Serializable id = (Serializable) getGridIdentifierType().nullSafeGet( tuple, getIdentifierColumnNames(), session, null );
      return load( id, null, LockMode.NONE, session );
    }
    else {
      throw new AssertionFailure(
View Full Code Here

      tupleKey.put( propertyColumnNames[index], oldColumnValue[index] );
    }
    //add id value in TupleKey
    gridIdentifierType.nullSafeSet( tupleKey, id, persister.getIdentifierColumnNames(), session );

    Association propertyValues = associationPersister.getAssociation();
    if ( propertyValues != null ) {
      //Map's equals operation delegates to all it's key and value, should be fine for now
      //this is a StarToOne case ie the FK is on the owning entity
      final RowKey matchingTuple = new RowKeyBuilder()
          .tableName( persister.getTableName() )
View Full Code Here

        .key( id )
        .keyGridType( persister.getKeyGridType() )
        .collectionPersister( persister )
        .associationKeyMetadata( persister.getAssociationKeyMetadata() )
        .session( session );
      Association assoc = associationPersister.getAssociationOrNull();
      if ( assoc != null ) {
        for ( RowKey rowKey : assoc.getKeys() ) {
          resultset.addTuple( assoc.get( rowKey ) );
        }
      }
    }
    return resultset;
  }
View Full Code Here

  @Override
  public Association getAssociation(AssociationKey key, AssociationContext associationContext) {
    Cache<AssociationKey, Map<RowKey, Map<String, Object>>> cache = provider.getCache( ASSOCIATION_STORE );
    Map<RowKey, Map<String, Object>> atomicMap = AtomicMapLookup.getFineGrainedAtomicMap( cache, key, false );
    return atomicMap == null ? null : new Association( new MapAssociationSnapshot( atomicMap ) );
  }
View Full Code Here

  public Association createAssociation(AssociationKey key) {
    //TODO we don't verify that it does not yet exist assuming that this ahs been done before by the calling code
    //should we improve?
    Cache<AssociationKey, Map<RowKey, Map<String, Object>>> cache = provider.getCache( ASSOCIATION_STORE );
    Map<RowKey, Map<String, Object>> atomicMap = AtomicMapLookup.getFineGrainedAtomicMap( cache, key, true );
    return new Association( new MapAssociationSnapshot( atomicMap ) );
  }
View Full Code Here

    // been created
    executeBatch( associationContext.getOperationsQueue() );
    if ( storageStrategy == AssociationStorageStrategy.IN_ENTITY ) {
      DBObject entity = getEmbeddingEntity( key, associationContext );
      if ( getAssociationFieldOrNull( key, entity ) != null ) {
        return new Association( new MongoDBAssociationSnapshot( entity, key, storageStrategy ) );
      }
      else {
        return null;
      }
    }
    final DBObject result = findAssociation( key, associationContext, storageStrategy );
    if ( result == null ) {
      return null;
    }
    else {
      return new Association( new MongoDBAssociationSnapshot( result, key, storageStrategy ) );
    }
  }
View Full Code Here

TOP

Related Classes of org.hibernate.ogm.datastore.spi.Association

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.