如何在CMIS查询中使用OR?

时间:2014-03-12 13:08:27

标签: alfresco cmis

我正在编写一个查询,根据创建日期或上次修改日期提供结果

  

SELECT * FROM cmis:document其中cmis:createdBy不喜欢'%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:document其中cmis:createdBy不喜欢'%System%'和cmis:contentStreamLength> 0 AND(cmis:creationDate>'2014-03-12T18:19:48 + 0530'AND cmis:creationDate<'2014-03-12T18:32:48 + 0530')OR(cmis:lastModificationDate>'2014 -03-12T18:19:48 + 0530'AND cmis:lastModificationDate<'2014-03-12T18:32:48 + 0530')

它会抛出错误&没有跑。

我读过它可能无法使用OR谓词。任何想法我怎么能实现这个?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我可以使用以下代码获得所需格式的时间。

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, ':'); }; };

现在我可以使用OR谓词进行查询。