Próbowałem tej kwerendy HQL, ale zgłasza UnsupportedOperationException kiedy używam actProp [key] =:: wartość w następującym zapytaniem:HQL: odpytywanie wartości java.util.Map
Zaznacz wszystkie działania które zawierają wartości par x, y lub z, y w actionProperties mAP:
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) ");
wyjątek:
java.lang.UnsupportedOperationException
at org.hibernate.hql.ast.tree.IdentNode.resolveIndex(IdentNode.java:67)
w działaniu jednostki:
@CollectionOfElements(fetch = FetchType.EAGER)
private Map<String, String> actionProperties;
Próbowałem również użyć do tego Kryteriów Hibernacji, ale nie sądzę, aby było to możliwe.
Czy ktoś wie coś do zastąpienia: actProp [: key] =: value z działającym kodem?
Mam ten sam problem i wydaje mi się, że to nie gwarantuje, że klucz i wartość są ze sobą powiązane. To tylko gwarantuje, że istnieje taki klucz i taka wartość we właściwościach, ale wartość może być powiązana z innym kluczem, który nie działa dla mnie. –