Java IBM Lotus Notes извлекает данные из представления сбой в середине из-за нулевого объекта - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь получить данные из представления базы данных Lotus Notes с помощью Java-программы.Ниже мой код:

int resultsCount = view.getEntryCount();
print("Results found in view = " + resultsCount);           

Document doc = view.getFirstDocument();
if (doc != null) {
    int count = 1;  
    while (count <= resultsCount) {
        count++;
        try {
            doc = view.getNextDocument(doc);
            if (doc == null) {
                print("Record " + count + " error. Null object.");  
            } 
        } catch (NotesException e) {
                print("Record " + count + " error. Exception.");
        }
    }
}
else {
    print("Record " + count + " error. Null object.");
}

Я получаю ниже результаты:
Результаты, найденные в представлении = 1567
Запись 866 ошибка.Нулевой объект.

Почему обнаруживается пустой документ, когда на самом деле в представлении БД присутствует 1567 записей?
Как возобновить, чтобы получить остальные записи, потому что view.getNextDocument (doc)после этого происходит сбой Notes Notes.

1 Ответ

0 голосов
/ 05 декабря 2018

Исправлено с помощью

int resultsCount = view.getAllEntries().getCount();

вместо

int resultsCount = view.getEntryCount();

Использование view.getAllEntries (). GetCount () возвращает фактический счетчик записей, равный 866. Я не уверен, чтоview.getEntryCount () возвращает.Но это определенно не фактическое количество документов.

Редактировать:
Как упоминалось в XPages getEntryCount против getAllEntries (). GetCount () view.getEntryCount () включает репликации и сохранение конфликтов.Поэтому для получения действительного количества записей необходимо использовать view.getAllEntries (). GetCount ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...