检查ArrayList是否包含使用hql的元素

时间:2012-06-20 10:13:31

标签: java hql

我正在使用hql请求来检查名为SharedItems的列并映射为java.util.ArrayList是否包含一些文本,如下所示:

where 'someText' in elements(SharedItems)

没有按预期工作当'SharedItems'列包含空值时,它会显示:

Wrapped Exception: null
at com.xpn.xwiki.store.XWikiHibernateStore.search(XWikiHibernateStore.java:2398)
at com.xpn.xwiki.store.XWikiHibernateStore.search(XWikiHibernateStore.java:2327)
at com.xpn.xwiki.store.XWikiHibernateStore.search(XWikiHibernateStore.java:2315)
at com.xpn.xwiki.store.XWikiCacheStore.search(XWikiCacheStore.java:659)
at com.xpn.xwiki.XWiki.search(XWiki.java:1747)
at com.xpn.xwiki.api.XWiki.search(XWiki.java:512)
at sun.reflect.GeneratedMethodAccessor610.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
... 137 more

1 个答案:

答案 0 :(得分:0)

我找到了对此问题的回复here

  

请注意这些结构 - 大小,元素,索引,minindex,   maxindex,minelement,maxelement - 只能在where中使用   Hibernate3中的子句。

     

索引集合(数组,列表和映射)的元素可以是   仅在where子句中由index引用。