Как использовать ИЛИ в запросе 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, ':'); }; };

Теперь я могу получить запрос с предикатом ИЛИ.

Другие вопросы по тегам