如何使用 CMIS 从露天存储库中获取超过 100 条记录
How to get more than 100 records from alfresco repository using CMIS
我在CMIS下面写了查询。
查询= select * 来自cmis:document
但它 returns 只有前 100 个结果。实际上在 Repository 中有超过 100 个结果。
那么如何使用相同的查询获得所有结果?
我在下面写了CMIS代码--
代码=
public ArrayList<JSONObject> search() {
ItemIterable<QueryResult> results =null;
StringBuilder sb=null;
sb = new StringBuilder();
sb.append("select * from hr:hrdoctype");
CMISSession1 s=new CMISSession1();
Session session=s.getSession();
// execute query
results = session.query(sb.toString(), false);
ArrayList<JSONObject> list=new ArrayList<>();
for (QueryResult qr : results) {
GregorianCalendar gc = (GregorianCalendar) qr.getPropertyValueById("cmis:creationDate");
try{
int month = gc.getTime().getMonth();
-
-
-
}
catch(org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException e)
{
}
}
-------------
list.add(json);
}
return list;
}
请帮忙。
提前致谢。
从 OpenCMIS 的角度来看,这看起来不错。
但是,出于性能原因,您应该更改批量大小:
OperationContext oc = session.createOperationContext();
oc.setMaxItemsPerPage(10000); // batch size, default = 100
results = session.query(sb.toString(), false, oc);
另请参阅此主题:https://community.alfresco.com/thread/206836-alfresco-cmis-query-returning-only-100-results
我在CMIS下面写了查询。
查询= select * 来自cmis:document
但它 returns 只有前 100 个结果。实际上在 Repository 中有超过 100 个结果。
那么如何使用相同的查询获得所有结果?
我在下面写了CMIS代码--
代码=
public ArrayList<JSONObject> search() {
ItemIterable<QueryResult> results =null;
StringBuilder sb=null;
sb = new StringBuilder();
sb.append("select * from hr:hrdoctype");
CMISSession1 s=new CMISSession1();
Session session=s.getSession();
// execute query
results = session.query(sb.toString(), false);
ArrayList<JSONObject> list=new ArrayList<>();
for (QueryResult qr : results) {
GregorianCalendar gc = (GregorianCalendar) qr.getPropertyValueById("cmis:creationDate");
try{
int month = gc.getTime().getMonth();
-
-
-
}
catch(org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException e)
{
}
}
-------------
list.add(json);
}
return list;
}
请帮忙。
提前致谢。
从 OpenCMIS 的角度来看,这看起来不错。 但是,出于性能原因,您应该更改批量大小:
OperationContext oc = session.createOperationContext();
oc.setMaxItemsPerPage(10000); // batch size, default = 100
results = session.query(sb.toString(), false, oc);
另请参阅此主题:https://community.alfresco.com/thread/206836-alfresco-cmis-query-returning-only-100-results