1

問題 (または少なくとも私が理解していないいくつかの動作) を説明するために作成したテスト関数がいくつかあります。Alfresco 4.2.e コミュニティ リポジトリでいくつかの基本的な CMIS クエリを実行していますが、session.query() と session.queryObjects() のどちらを使用するかによって、予期しない結果が得られます。具体的には、queryObjects はカスタム アスペクトのプロパティを返しません。どちらも関係/関連付けを正常に返します。私は何か間違ったことをしていますか、それともこれはバグですか? opencmis 0.10 と CMIS 1.1 URL を使用しています。

private static Collection<Document> testCmisObjectQuery(Session session) {
    List<Document> rv = new LinkedList<>();
    OperationContext opCon = session.createOperationContext();
    opCon.setLoadSecondaryTypeProperties(true);
    opCon.setIncludeRelationships(IncludeRelationships.BOTH);

    ItemIterable<CmisObject> cmisObjs = 
            session.queryObjects("D:af:insuringFormInstance", null, false, opCon);
    for (CmisObject o : cmisObjs) {
        Document d = (Document) o;
        rv.add(d);
        printDocProps(d);
    }
    return rv;
}

private static Collection<Document> testCmisQuery(Session session) {
    List<Document> rv = new LinkedList<>();
    String queryString = "SELECT cmis:objectId FROM af:insuringFormInstance";
    OperationContext opCon = session.createOperationContext();
    opCon.setIncludeRelationships(IncludeRelationships.SOURCE);
    ItemIterable<QueryResult> results = session.query(queryString, false);
    for (QueryResult qResult : results) {
        String objectId = qResult.getPropertyValueByQueryName("cmis:objectId");
        Document doc = (Document)   session.getObject(session.createObjectId(objectId),opCon);
        printDocProps(doc);
        rv.add(doc);
    }
    return rv;
}
4

1 に答える 1

2

次のように結合が欠落しているように見えます

select d.*, o.* from cmis:document as d join cm:ownable as o on d.cmis:objectId = o.cmis:objectId

詳細については、https://wiki.alfresco.com/wiki/CMIS#Aspect_Queryをご覧ください。

于 2014-03-19T22:20:23.047 に答える