Package org.hibernate.ogm.persister.impl

Examples of org.hibernate.ogm.persister.impl.OgmEntityPersister


      Neo4jQueryResolverDelegate resolverDelegate) {
    return SingleEntityQueryBuilder.getInstance( new Neo4jPredicateFactory( propertyHelper, resolverDelegate ), propertyHelper );
  }

  private EntityKeyMetadata getKeyMetaData(Class<?> entityType) {
    OgmEntityPersister persister = (OgmEntityPersister) ( sessionFactory ).getEntityPersister( entityType.getName() );
    return new EntityKeyMetadata( persister.getTableName(), persister.getRootTableIdentifierColumnNames() );
  }
View Full Code Here


    //TODO Don't invoke for params

    if ( propertyPath.size() > 1 ) {
      throw new UnsupportedOperationException( "Queries on embedded/associated entities are not supported yet." );
    }
    OgmEntityPersister persister = getPersister( entityType );
    Type propertyType = persister.getPropertyType( propertyPath.get( propertyPath.size() - 1 ) );
    if ( propertyType instanceof AbstractStandardBasicType ) {
      return ( (AbstractStandardBasicType<?>) propertyType ).fromString( value );
    }
    else {
      return value;
View Full Code Here

  public Object convertToLiteral(String entityType, List<String> propertyPath, Object value) {
    if ( propertyPath.size() > 1 ) {
      throw new UnsupportedOperationException( "Queries on embedded/associated entities are not supported yet." );
    }
    OgmEntityPersister persister = getPersister( entityType );
    Type propertyType = persister.getPropertyType( propertyPath.get( propertyPath.size() - 1 ) );
    Object gridValue = convertToGridType( value, propertyType );
    return gridValue;
  }
View Full Code Here

  private Map<EntityKeyMetadata, Neo4jEntityQueries> initializeEntityQueries(SessionFactoryImplementor sessionFactoryImplementor) {
    Map<EntityKeyMetadata, Neo4jEntityQueries> queryMap = new HashMap<EntityKeyMetadata, Neo4jEntityQueries>();
    Collection<EntityPersister> entityPersisters = sessionFactoryImplementor.getEntityPersisters().values();
    for ( EntityPersister entityPersister : entityPersisters ) {
      if (entityPersister instanceof OgmEntityPersister ) {
        OgmEntityPersister ogmEntityPersister = (OgmEntityPersister) entityPersister;
        queryMap.put( ogmEntityPersister.getEntityKeyMetadata(), new Neo4jEntityQueries( ogmEntityPersister.getEntityKeyMetadata() ) );
      }
    }
    return queryMap;
  }
View Full Code Here

    this.propertyHelper = propertyHelper;
  }

  @Override
  public MongoDBQueryParsingResult getResult() {
    OgmEntityPersister entityPersister = (OgmEntityPersister) sessionFactory.getEntityPersister( targetType.getName() );

    return new MongoDBQueryParsingResult(
        targetType,
        entityPersister.getTableName(),
        builder.build(),
        getProjectionDBObject(),
        orderBy
    );
  }
View Full Code Here

      Serializable id,
      Object optionalObject,
      SessionImplementor session,
      LockOptions lockOptions,
      OgmLoadingContext ogmLoadingContext) {
    final OgmEntityPersister currentPersister = entityPersisters[0];
    if ( log.isDebugEnabled() ) {
      if ( id != null ) {
        log.debug(
            "loading entity: " +
            MessageHelper.infoString( currentPersister, id, currentPersister.getIdentifierType(), session.getFactory() )
          );
      }
      else {
        log.debug(
            "loading entities from list of tuples: " +
            MessageHelper.infoString( currentPersister, id, currentPersister.getIdentifierType(), session.getFactory() )
        );
      }
    }
    QueryParameters qp = new QueryParameters();
    qp.setPositionalParameterTypes( new Type[] { currentPersister.getIdentifierType() } );
    qp.setPositionalParameterValues( new Object[] { id } );
    qp.setOptionalObject( optionalObject );
    qp.setOptionalEntityName( currentPersister.getEntityName() );
    qp.setOptionalId( id );
    qp.setLockOptions( lockOptions );

    List<Object> result = doQueryAndInitializeNonLazyCollections(
        session,
View Full Code Here

    if (keys.length == 0) {
      //do nothing, this is a collection
    }
    else {
      if (optionalId == null) {
        final OgmEntityPersister currentPersister = entityPersisters[0];
        Tuple tuple =  ogmLoadingContext.getResultSet().getTuple();
        GridType gridIdentifierType = currentPersister.getGridIdentifierType();
        optionalId = (Serializable) gridIdentifierType.nullSafeGet( tuple, currentPersister.getIdentifierColumnNames(), session, null );
      }
      final org.hibernate.engine.spi.EntityKey key = session.generateEntityKey( optionalId,  entityPersisters[0] );
      keys[0] = key;
    }
  }
View Full Code Here

    }

    //TODO this if won't work when we will support collections inside the entity tuple but that will do for now
    final TupleAsMapResultSet resultset = new TupleAsMapResultSet();
    if ( getEntityPersisters().length > 0 ) {
      OgmEntityPersister persister = getEntityPersisters()[0];
      final EntityKey key = EntityKeyBuilder.fromPersister( persister, id, session );
      Tuple entry = gridDialect.getTuple( key, persister.getTupleContext() );
      if ( entry != null ) {
        resultset.addTuple( entry );
      }
    }
    else {
      //collection persister
      if ( getCollectionPersisters().length != 1 ) {
        throw new AssertionFailure( "Found an unexpected number of collection persisters: " + getCollectionPersisters().length );
      }
      final OgmCollectionPersister persister = (OgmCollectionPersister) getCollectionPersisters()[0];
      Object owner = session.getPersistenceContext().getCollectionOwner( id, persister );

      AssociationPersister associationPersister = new AssociationPersister(
          persister.getOwnerEntityPersister().getMappedClass()
        )
        .gridDialect( gridDialect )
        .key( id, persister.getKeyGridType() )
        .associationKeyMetadata( persister.getAssociationKeyMetadata() )
        .associationTypeContext( persister.getAssociationTypeContext() )
        .hostingEntity( owner )
        .session( session );

      Association assoc = associationPersister.getAssociationOrNull();
      if ( assoc != null ) {
View Full Code Here

  throws HibernateException {

    final Serializable id = key.getIdentifier();

    // Get the persister for the _subclass_
    final OgmEntityPersister persister = (OgmEntityPersister) getFactory().getEntityPersister( instanceEntityName );

    if ( log.isTraceEnabled() ) {
      log.trace(
          "Initializing object from ResultSet: " +
          MessageHelper.infoString( persister, id, getFactory() )
        );
    }

    //FIXME figure out what that means and what value should be set
    //boolean eagerPropertyFetch = isEagerPropertyFetchEnabled(i);
    boolean eagerPropertyFetch = true;

    // add temp entry so that the next step is circular-reference
    // safe - only needed because some types don't take proper
    // advantage of two-phase-load (esp. components)
    TwoPhaseLoad.addUninitializedEntity(
        key,
        object,
        persister,
        lockMode,
        !eagerPropertyFetch,
        session
    );

    //TODO what to do with that in OGM
//    //This is not very nice (and quite slow):
//    final String[][] cols = persister == rootPersister ?
//        getEntityAliases()[i].getSuffixedPropertyAliases() :
//        getEntityAliases()[i].getSuffixedPropertyAliases(persister);

    final Object[] values = persister.hydrate(
        resultset,
        id,
        object,
        rootPersister,
        //cols,
        eagerPropertyFetch,
        session
      );

    if ( persister.hasRowId() ) {
      throw new HibernateException( "Hibernate OGM does nto support row id");
    }
    final Object rowId = null;

    final AssociationType[] ownerAssociationTypes = getOwnerAssociationTypes();
    if ( ownerAssociationTypes != null && ownerAssociationTypes[i] != null ) {
      String ukName = ownerAssociationTypes[i].getRHSUniqueKeyPropertyName();
      if ( ukName != null ) {
        final int index = ( (UniqueKeyLoadable) persister ).getPropertyIndex( ukName );
        final Type type = persister.getPropertyTypes()[index];

        // polymorphism not really handled completely correctly,
        // perhaps...well, actually its ok, assuming that the
        // entity name used in the lookup is the same as the
        // the one used here, which it will be

        EntityUniqueKey euk = new EntityUniqueKey(
            rootPersister.getEntityName(), //polymorphism comment above
            ukName,
            type.semiResolve( values[index], session, object ),
            type,
            persister.getEntityMode(),
            session.getFactory()
          );
        session.getPersistenceContext().addEntity( euk, object );
      }
    }
View Full Code Here

    this.batchBackend = backend;
    this.monitor = monitor;
  }

  private EntityKeyMetadata getEntityKeyMetadata() {
    OgmEntityPersister persister = (OgmEntityPersister) sessionFactory.getEntityPersister( indexedType.getName() );
    return new EntityKeyMetadata( persister.getTableName(), persister.getRootTableIdentifierColumnNames() );
  }
View Full Code Here

TOP

Related Classes of org.hibernate.ogm.persister.impl.OgmEntityPersister

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.