2016-09-12 10 views
0

하나의 쿼리로 cmis 1.0 호환 리포지토리의 폴더 하위를 필터링하고 싶습니다. 지금까지 가능하지 않으므로 자식 (즉, 폴더 및 문서)을 검색하기 위해 두 가지 쿼리를 실행하도록 설정했지만 다음 쿼리가 있으므로 사용자 지정 유형별로 자식을 필터링하고 싶습니다.cmis 쿼리를 사용하여 폴더 하위를 필터링하는 방법은 무엇입니까?

SELECT cmis:objectTypeId, cmis:objectId FROM cmis:folder WHERE cmis:objectTypeId = 'my:custom1' OR cmis:objectTypeId = 'my:custom2' OR cmis:objectTypeId = 'cmis:folder' IN_FOLDER('workspace://SpacesStore/fhj738tw-45hW-659u-9DS1-9cX3Nh95r089') 

일치하지 않는 입력에 대한 오류가 계속 발생하기 때문에 작동하지 않습니다.

+0

귀하의 질문을 이해하면 특정 폴더의 하위 항목을 가져올 필요가 있습니까? –

+0

질문은 2 부분입니다. 첫 번째 쿼리에서 폴더의 모든 자식을 검색 할 수 있어야하고 (내가 말할 수있는 한 불가능한 것처럼 보일 수 있습니다.) 두 번째로 반환 된 결과를 필터링하여 중재 유형 (예 : cmis : objectTypeId = my : 유형)가 리턴됩니다. –

+0

필자는 예제가 제대로 작동했음을 확신한다. 형식을 가져 오기 위해 내 대답을 업데이트 할 것이다. –

답변

1

나는 모든 아이들

ItemIterable<QueryResult> resultList = session.query(query, false);// No need to say about session ??? 

마지막

for (QueryResult qr : resultList) { 

String idDocument = qr.getPropertyByQueryName("cmis:objectId").getFirstValue().toString(); 
Document doc = (Document) session.getObject(idDocument); 

} 

주를 얻기 위해 특정 folder

String query; 
query = "SELECT * FROM cmis:document WHERE IN_FOLDER('" + folderId + "')"; 

와의 아이를 얻기 위해이 쿼리를 사용했습니다 그 제 예제에서는 단지 cmis:objectId을 얻을 수 있습니다.에서 더 많은 것을 얻을 수 있습니다.

희망은 도움이 될 것입니다.

+0

나는 다소 그랬다. 난 그냥 쿼리를 통해 검색 결과를 필터링 할 수 있는지 궁금 해서요. 하지만 나는 지금 그 게시물 검색을하고있다. 감사합니다 –

+0

@ DarkStar1 제 예제에서는'cmis : objectId' 만 얻을 수 있습니다 https://wiki.alfresco.com/wiki/CMIS_Query_Language –

+0

나는 이미 이것을 알고 있습니다. 나는 예를 발견하지 못했던 것을 묻고 있었다 –