Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

1) In jedem Fall die Daten in Blöcken (Chunks) holen!

2) Falls die ganze Tabelle eingelesen wird, OFFSET vermeiden, siehe Beispiel:

 

  

 

Codeblock
final long CHUNKSIZE = 5000;
 
  longlong lastID = 0L;
 
  Map<UIDMap<UID, FieldMeta<?>> mpFields = metaProvider.getAllEntityFieldsByEntity(entity);
  DbQueryBuilderDbQueryBuilder builder = dataBaseHelper.getDbAccess().getQueryBuilder();
 
  forfor (;;) {
   DbCondition DbCondition cond = builder.plainCondition("t.INTID > " + lastID);
 
   CollectableSearchCondition CollectableSearchCondition csc = new CollectableDbCondition(cond);
   CollectableSearchExpression CollectableSearchExpression cse = new CollectableSearchExpression(csc);
 
      Collection<EntityObjectVO<Long>> Collection<EntityObjectVO<Long>> lstEOs = entityObjectFacade.getEntityObjectsChunk(entity, mpFields.values(), null, cse, 0L, CHUNKSIZE - 1);
      
      if if (lstEOs.isEmpty()) {
       return;
      }
               
      for for (EntityObjectVO<Long> eo : lstEOs) {
       ....
        
	   lastID = eo.getPrimaryKey();
      }
      
   }