この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;
これにもHibernateCriteriaを使用しようとしましたが、これは不可能だと思います。
誰かが:actProp [:key] =:valueを動作するコードに置き換えるものを知っていますか?