Skip to content

Commit c384d6f

Browse files
committed
[26348] rework omnivore exportToFileSystem use query with limit
1 parent aad75d4 commit c384d6f

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

bundles/ch.elexis.omnivore.ui/src/ch/elexis/omnivore/ui/jobs/OutsourceUiJob.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package ch.elexis.omnivore.ui.jobs;
22

33
import java.lang.reflect.InvocationTargetException;
4-
import java.util.Collections;
4+
import java.util.List;
55

66
import org.eclipse.core.runtime.IProgressMonitor;
77
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
88
import org.eclipse.jface.operation.IRunnableWithProgress;
9-
import org.eclipse.persistence.config.HintValues;
10-
import org.eclipse.persistence.config.QueryHints;
119
import org.eclipse.swt.widgets.Shell;
1210

1311
import ch.elexis.core.services.IQuery;
14-
import ch.elexis.core.services.IQueryCursor;
12+
import ch.elexis.core.services.IQuery.COMPARATOR;
1513
import ch.elexis.core.ui.util.SWTHelper;
1614
import ch.elexis.omnivore.data.Messages;
1715
import ch.elexis.omnivore.model.IDocumentHandle;
@@ -28,15 +26,16 @@ public Object execute(Shell parentShell) {
2826

2927
@Override
3028
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
31-
IQuery<IDocumentHandle> qDoc = OmnivoreModelServiceHolder.get().getQuery(IDocumentHandle.class);
32-
33-
try (IQueryCursor<IDocumentHandle> docs = qDoc
34-
.executeAsCursor(Collections.singletonMap(QueryHints.MAINTAIN_CACHE, HintValues.TRUE))) {
35-
monitor.beginTask("Dateien werden ausgelagert...", docs.size());
29+
monitor.beginTask("Dateien werden ausgelagert...", IProgressMonitor.UNKNOWN);
3630

37-
while (docs.hasNext()) {
38-
IDocumentHandle docHandle = docs.next();
31+
IQuery<IDocumentHandle> qDoc = OmnivoreModelServiceHolder.get().getQuery(IDocumentHandle.class);
32+
qDoc.and("doc", COMPARATOR.NOT_EQUALS, null);
33+
qDoc.and("kontakt", COMPARATOR.NOT_EQUALS, null);
34+
qDoc.limit(100);
3935

36+
List<IDocumentHandle> notExported = qDoc.execute();
37+
while (!notExported.isEmpty()) {
38+
for (IDocumentHandle docHandle : notExported) {
4039
if (monitor.isCanceled())
4140
return;
4241
monitor.subTask("Datei: " + docHandle.getTitle());
@@ -46,6 +45,7 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException, Inte
4645
}
4746
monitor.worked(1);
4847
}
48+
notExported = qDoc.execute();
4949
}
5050
monitor.done();
5151
}

0 commit comments

Comments
 (0)