2010-12-03 32 views
0

je le modèle suivant:requête HQL sur la touche carte: colonne non trouvée: SQLGrammarException

class A{ 
    Map<String, Integer> tags 
} 

class B{ 
    A a; 
} 

je dois trouver des exemples de B où son A associé a une certaine valeur de clé dans ses balises map

J'exécutez la commande suivante HQL Recherche

FROM B WHERE index(a.tags) = 'the_value' 

Malheureusement, cela donne à un SQLGrammarException. La requête en cours de construction a une clause WHERE qui se termine par:

et tags2_.tags_idx = 'the_value'

et le message d'exception est

Colonne introuvable: TAGS2_. TAGS_IDX

Malheureusement, les alias tags2_ ne sont pas déjà déclarés dans l'instruction, ce qui conduit à e exception.

Des idées?

Cordialement

Répondre

0

ne suis pas sûr de l'alias absent, mais je suppose que vous avez besoin de la syntaxe suivante dans ce cas:

FROM B WHERE 'the_value' IN INDICES(a.tags) 

Voir aussi:

0

Pouvez-vous essayer quelque chose comme ça?

from B b join b.a a where index(a.tags) = 'the_value' 

Ou peut-être:

from B b where index(b.a.tags) = 'the_value'