【问题标题】:Alfresco CMIS query checking for NULL/BlankAlfresco CMIS 查询检查 NULL/Blank
【发布时间】:2017-03-20 12:43:51
【问题描述】:

我想检查 Aspect 属性是否存在,如果存在,它不应该是空白的......在某些文档中,应用了方面但没有填充任何属性。在某些文档中,aspect 的所有属性都已填充,但很少有空白。

我尝试了以下查询..

select * from myType:myCase as d join myAspect:myTest as p on d.cmis:objectId = p.cmis:objectId WHERE
CONTAINS(d, 'PATH:"//app:company_home/cm:DROP-FOLDER/*"')

AND p:myAspect:caseId = ''

我也试过 p:myAspect:caseId = '' **p:myAspect:caseId IS NOT NULL(不给出错误但返回具有空白属性值的行)

简而言之,如何检查 aspect 属性是否存在,如果存在则不为空?

谢谢

【问题讨论】:

  • 据我所知,你不能做外连接。这就是你想要做的吗?

标签: alfresco cmis cmis-workbench


【解决方案1】:

我不确定我是否理解“如果存在则不应为空白”的意思(您可能正在考虑属性)。如果你想检查某个方面是否存在,这在一个选项中:

SELECT * FROM cmis:document where contains('ASPECT:\'myNs:myAspect\'')

不过,请注意事务性查询。 http://docs.alfresco.com/5.0/concepts/intrans-metadata-query.html

【讨论】:

  • 我对内容应用了一个方面。但由于我没有为该方面添加任何属性值,它不会在节点浏览器中显示该方面的任何属性。对于某些内容,我添加了一些属性值,因此它将所有方面属性显示到节点浏览器中。使用 1 个不为空或不存在的属性(例如 myAspect:caseId)搜索具有此方面的内容。 select * from myType:myCase as d join myAspect:myTest as p on d.cmis:objectId = p.cmis:objectId WHERE CONTAINS(d, 'PATH:"//app:company_home/cm:DROP-FOLDER/*"' ) AND p:myAspect:caseId != ''
【解决方案2】:

您可以进行如下查询以获取没有特定方面的文档,只是对@Lista 答案的更新

SELECT * FROM myType:myCase WHERE NOT CONTAINS('ASPECT:\'myNs:myAspect\'')

【讨论】:

    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2012-10-10
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多