我尝试了这个 hql 查询,但是当我在以下查询中使用actProp[:key] = :value时,它会引发 UnsupportedOperationException:
选择地图 actionProperties 中包含值对 x,y 或 z,y 的所有动作:
Query query = getSession().createQuery(
"select a from Action a " +
" join a.actionProperties actProp " +
" where (index(actProp) = :key " +
" and actProp[:key] = :value ) " +
" or (index(actProp) = :key2 " +
" and actProp[:key2] = :value ) ");
例外:
java.lang.UnsupportedOperationException
at org.hibernate.hql.ast.tree.IdentNode.resolveIndex(IdentNode.java:67)
在实体动作中:
@CollectionOfElements(fetch = FetchType.EAGER)
private Map<String, String> actionProperties;
我也尝试为此使用 Hibernate Criteria,但我认为这是不可能的。
有人知道用工作代码替换 : actProp[:key] = :value吗?