//predicates.add(equal("docTypeName", routeHeader.getDocumentType().getName())); // Check all document types in ancestry DocumentType dt = routeHeader.getDocumentType(); List documentTypeAncestry = new ArrayList(); while (dt != null) { documentTypeAncestry.add(equal("docTypeName", dt.getName())); dt = dt.getParentDocType(); } predicates.add(and(or(documentTypeAncestry.toArray(new Predicate[documentTypeAncestry.size()]))));