Ajuda no Teneo (EMF & Hibernate) p/ usar FeatureMap em HQL

Ola galera, é meu primeiro post aqui…
Estou com um problema um pouco diferente, creio eu…
“Varri” a net toda atrás de uma solução, e tudo que consegui foi saber que é possivel fazer a HQL, mas exemplos que são bons, nada.

A questão é a seguinte:
Consigo fazer inner joins normalmente em EList’s, mas nao em FeatureMap’s…

Aqui esta a pagina explicando pra que serve esse FeatureMap:
http://ejb.elver.org/hibernate/featuremap.html

No final dela, o autor diz o seguinte:
Advanced querying possible: foreign keys are created in the entry table for references to other classes (tables). This means that it is possible to join tables using advanced SQL or HQL queries.

Ou seja, em HQL’s avançadas é possivel usar esses FeatureMap’s. A questão é, como?
Será que vou ter que fazer SQL’s ao invés de HQL’s?

Aqui está a consulta que estou tentando fazer:

Query query = session.createQuery(
"select distinct mp1 " +
"from Mpeg7Type1 as mp1 " +
"join mp1.description as tmp1 " +
"join tmp1.semantics as tmp2 " +
"join tmp2.group as tmp3 " +
"where tmp1.class = SemanticDescriptionType " +
“and tmp2.class = SemanticType”);

mp1.description e tmp1.semantics são EList’s com polimorfismo, e por isso o uso de tmp1.class e tmp2.class.
tmp1.semantics resulta em SemanticType, e nessa classe há o FeatureMap group, só que eu nao consigo continuar a query com “join tmp3.xxxx as tmp4”… (se fosse EList, seria fácil continuar)

Alguém tem uma luz quanto a isso?
Grato!

bom, eu consegui descobrir o “truque” da coisa, pois como estou com prazo apertado, milagres acontecem, hehe.
Eu nao saquei de cara pois o arquivo do mapeamento do hibernate é feito automaticamente pelo Teneo… eu justamente descobri a solucao olhando esse arquivo, por acaso…

e justamente com o arquivo de mapeamento (hbm.xml) que eu descobri como continuar do atributo group: (por qual atributo de group continuar os joins, ou navegacao, como preferirem)

Query query = session.createQuery("" +
"select distinct mp1 " +
"from Mpeg7Type1 as mp1 " +
"join mp1.description as tmp1 " +
"join tmp1.semantics as tmp2 " +
"join tmp2.group as tmp3 " +
"join tmp3.semanticBase as tmp4 " +
"join tmp4.label as tmp5 " +
"join tmp5.name as tmp6 " +
"where tmp1.class = SemanticDescriptionType " +
"and tmp2.class = SemanticType " +
"and tmp4.class = ObjectType " +
“and tmp6.value like :x”);
query.setString(“x”, “%Trem%”);

linda, não?

[]'s a todos :slight_smile: