Examples of ScrollableResults


Examples of org.hibernate.ScrollableResults

   public void purge(Executor threadPool, final PurgeListener listener) {
      ExecutorAllCompletionService eacs = new ExecutorAllCompletionService(threadPool);
      EntityManager emStream = emf.createEntityManager();
      try {
         EntityTransaction txStream = emStream.getTransaction();
         ScrollableResults metadataKeys = null;
         txStream.begin();
         try {
            long currentTime = timeService.wallClockTime();
            Session session = emStream.unwrap(Session.class);
            Criteria criteria = session.createCriteria(MetadataEntity.class).setReadOnly(true)
                  .add(Restrictions.le(MetadataEntity.EXPIRATION, currentTime)).setProjection(Projections.id());
            if (setFetchSizeMinInteger) {
               criteria.setFetchSize(Integer.MIN_VALUE);
            }

            metadataKeys = criteria.scroll(ScrollMode.FORWARD_ONLY);
            ArrayList<MetadataEntityKey> batch = new ArrayList<MetadataEntityKey>((int) configuration.batchSize());
            while (metadataKeys.next()) {
               MetadataEntityKey mKey = (MetadataEntityKey) metadataKeys.get(0);
               batch.add(mKey);
               if (batch.size() == configuration.batchSize()) {
                  purgeBatch(batch, listener, eacs, currentTime);
                  batch.clear();
               }
            }
            purgeBatch(batch, listener, eacs, currentTime);
            txStream.commit();
         } finally {
            if (metadataKeys != null) metadataKeys.close();
            if (txStream != null && txStream.isActive()) {
               txStream.rollback();
            }
         }
      } finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

   @Override
   public void clear() {
      EntityManager emStream = emf.createEntityManager();
      try {
         ScrollableResults results = null;
         ArrayList<Object> batch = new ArrayList<Object>((int) configuration.batchSize());
         EntityTransaction txStream = emStream.getTransaction();
         txStream.begin();
         try {
            log.trace("Clearing JPA Store");
            Session session = emStream.unwrap(Session.class);
            Criteria criteria = session.createCriteria(configuration.entityClass()).setReadOnly(true)
                  .setProjection(Projections.id());
            if (setFetchSizeMinInteger) {
               criteria.setFetchSize(Integer.MIN_VALUE);
            }
            results = criteria.scroll(ScrollMode.FORWARD_ONLY);

            while (results.next()) {
               Object o = results.get(0);
               batch.add(o);
               if (batch.size() == configuration.batchSize()) {
                  session.clear();
                  removeBatch(batch);
               }
            }
            if (configuration.storeMetadata()) {
               /* We have to close the stream before executing further request */
               results.close();
               results = null;
               String metadataTable = emStream.getMetamodel().entity(MetadataEntity.class).getName();
               Query clearMetadata = emStream.createQuery("DELETE FROM " + metadataTable);
               clearMetadata.executeUpdate();
            }
            txStream.commit();
         } finally {
            removeBatch(batch);
            if (results != null) {
               results.close();
            }
            if (txStream != null && txStream.isActive()) {
               txStream.rollback();
            }
         }
View Full Code Here

Examples of org.hibernate.ScrollableResults

      ExecutorAllCompletionService eacs = new ExecutorAllCompletionService(executor);
      TaskContextImpl taskContext = new TaskContextImpl();
      EntityManager emStream = emf.createEntityManager();
      try {
         EntityTransaction txStream = emStream.getTransaction();
         ScrollableResults results = null;
         txStream.begin();
         try {
            Session session = emStream.unwrap(Session.class);
            Criteria criteria = strategy.getCriteria(session).setReadOnly(true);
            if (setFetchSizeMinInteger) {
               criteria.setFetchSize(Integer.MIN_VALUE);
            }
            results = criteria.scroll(ScrollMode.FORWARD_ONLY);
            try {
               while (results.next()) {
                  if (taskContext.isStopped())
                     break;
                  Object result = results.get(0);
                  Object key = strategy.getKey(result);
                  if (filter != null && !filter.accept(key)) {
                     if (trace) log.trace("Key " + key + " filtered");
                     continue;
                  }
                  eacs.submit(strategy.getTask(task, taskContext, result, key));
               }
            } finally {
               if (results != null) results.close();
            }
            txStream.commit();
         } finally {
            if (txStream != null && txStream.isActive()) {
               txStream.rollback();
View Full Code Here

Examples of org.hibernate.ScrollableResults

      }
      ExecutorAllCompletionService eacs = new ExecutorAllCompletionService(threadPool);
      EntityManager emStream = emf.createEntityManager();
      try {
         EntityTransaction txStream = emStream.getTransaction();
         ScrollableResults metadataKeys = null;
         txStream.begin();
         try {
            long currentTime = timeService.wallClockTime();
            Session session = emStream.unwrap(Session.class);
            Criteria criteria = session.createCriteria(MetadataEntity.class).setReadOnly(true)
                  .add(Restrictions.le(MetadataEntity.EXPIRATION, currentTime)).setProjection(Projections.id());
            if (setFetchSizeMinInteger) {
               criteria.setFetchSize(Integer.MIN_VALUE);
            }

            metadataKeys = criteria.scroll(ScrollMode.FORWARD_ONLY);
            ArrayList<MetadataEntityKey> batch = new ArrayList<MetadataEntityKey>((int) configuration.batchSize());
            while (metadataKeys.next()) {
               MetadataEntityKey mKey = (MetadataEntityKey) metadataKeys.get(0);
               batch.add(mKey);
               if (batch.size() == configuration.batchSize()) {
                  purgeBatch(batch, listener, eacs, currentTime);
                  batch.clear();
               }
            }
            purgeBatch(batch, listener, eacs, currentTime);
            txStream.commit();
         } finally {
            if (metadataKeys != null) metadataKeys.close();
            if (txStream != null && txStream.isActive()) {
               txStream.rollback();
            }
         }
      } finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

      return;
    }
    try {
      insertTestData();
      Session s = openSession();
      ScrollableResults results = s.createQuery( QUERY ).scroll();
      List list = new ArrayList();
      while ( results.next() ) {
        list.add( results.get( 0 ) );
      }
      assertResultFromAllUsers( list );
      s.close();
    }
    finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

  public void testScrollOrderParentAsc() {
    try {
      insertTestData();
      Session s = openSession();
      ScrollableResults results = s.createQuery( QUERY + " order by p.name asc" ).scroll();
      List list = new ArrayList();
      while ( results.next() ) {
        list.add( results.get( 0 ) );
      }
      assertResultFromAllUsers( list );
      s.close();
    }
    finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

  public void testScrollOrderParentDesc() {
    try {
      insertTestData();
      Session s = openSession();
      ScrollableResults results = s.createQuery( QUERY + " order by p.name desc" ).scroll();
      List list = new ArrayList();
      while ( results.next() ) {
        list.add( results.get( 0 ) );
      }
      assertResultFromAllUsers( list );
      s.close();
    }
    finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

  public void testScrollOrderParentAscChildrenAsc() {
    try {
      insertTestData();
      Session s = openSession();
      ScrollableResults results = s.createQuery( QUERY + " order by p.name asc, c.name asc" ).scroll();
      List list = new ArrayList();
      while ( results.next() ) {
        list.add( results.get( 0 ) );
      }
      assertResultFromAllUsers( list );
      s.close();
    }
    finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

  public void testScrollOrderParentAscChildrenDesc() {
    try {
      insertTestData();
      Session s = openSession();
      ScrollableResults results = s.createQuery( QUERY + " order by p.name asc, c.name desc" ).scroll();
      List list = new ArrayList();
      while ( results.next() ) {
        list.add( results.get( 0 ) );
      }
      assertResultFromAllUsers( list );
      s.close();
    }
    finally {
View Full Code Here

Examples of org.hibernate.ScrollableResults

      .createCriteria( indexedType )
      .setProjection( Projections.id() )
      .setCacheable( false )
      .setFetchSize( idFetchSize );

    ScrollableResults results = criteria.scroll( ScrollMode.FORWARD_ONLY );
    ArrayList<Serializable> destinationList = new ArrayList<Serializable>( batchSize );
    long counter = 0;
    try {
      while ( results.next() ) {
        Serializable id = (Serializable) results.get( 0 );
        destinationList.add( id );
        if ( destinationList.size() == batchSize ) {
          enqueueList( destinationList );
          destinationList = new ArrayList<Serializable>( batchSize );
        }
        counter++;
        if ( counter == totalCount ) {
          break;
        }
      }
    }
    finally {
      results.close();
    }
    enqueueList( destinationList );
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.