Seitenhistorie
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(); } } |
Überblick
Inhalte