Как использовать ИЛИ в запросе CMIS?
Я пишу запрос, который предоставляет результаты на основе либо даты создания или даты последнего изменения
SELECT * FROM cmis: документ, в котором cmis: создан By НЕ похож на '%System%' И cmis:contentStreamLength > 0 AND (cmis:creationDate > '2014-03-12T18:19:48+0530' AND cmis:creationDate <'2014- 03-12T18: 32: 48 + 0530 ') AND (cmis:lastModificationDate>'2014-03-12T18:19:48+0530' AND cmis:lastModificationDate <' 2014-03-12T18: 32: 48 + 0530 ')
Согласно моей потребности, я хочу проверить либо на основе cmis: creationDate или cmis:lastModificationDate, что кажется логичным, но когда я пытаюсь использовать запрос как
SELECT * FROM cmis: документ, в котором cmis: создан By НЕ похож на '%System%' И cmis:contentStreamLength > 0 AND (cmis:creationDate > '2014-03-12T18:19:48+0530' AND cmis:creationDate <'2014- 03-12T18: 32: 48 + 0530 ') ИЛИ (cmis:lastModificationDate>' 2014-03-12T18: 19: 48 + 0530 'И cmis:lastModificationDate <' 2014-03-12T18: 32: 48 + 0530 ')
выдает ошибку и не запускается.
Я читал, что невозможно использовать предикат ИЛИ как таковой. Есть идеи, как мне этого добиться?
Спасибо за помощь.
1 ответ
Я смог получить время в нужном формате, используя код ниже.
private static final SimpleDateFormat CMIS_DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ") {
@Override
public StringBuffer format(Date date, StringBuffer toAppendTo, java.text.FieldPosition pos) {
StringBuffer toFix = super.format(date, toAppendTo, pos);
return toFix.insert(toFix.length()-2, ':');
};
};
Теперь я могу получить запрос с предикатом ИЛИ.