Получение свойств хранилища объектов без дополнительного туда-обратно

Я использую IBM FileNet CE API 5.1 и сталкиваюсь с проблемой производительности из-за дополнительного обновления в цикле с большим количеством итераций (25000+). Вот пример кода:

for (Document document : documents) {
       ObjectStore objectStore = document.getObjectStore();
       objectStore.refresh(); //round-trip
       String symbolicName = objectStore.get_SymbolicName();

       ...
 }

Проблема в том, что объект objectStore до обновления вообще не имеет никаких кэшированных свойств, даже идентификатора объекта (если бы я мог создать кэш хранилища объектов, чтобы избежать обновления в каждой итерации).

Документы могут иметь разные хранилища объектов (я ищу в нескольких хранилищах объектов).

2 ответа

Решение

Вы можете получить идентификатор хранилища объектов из ссылки на объект:

document.getObjectReference().getObjectStoreIdentity()

Есть способ получить идентификатор хранилища объектов через EngineObjectImpl.getObjectStoreReference():

GlobalIdentity objectStoreReference = ((EngineObjectImpl)object).getObjectStoreReference();
Id objectId = objectStoreReference.getObjectId();
Другие вопросы по тегам