Duvida em query HQL

Pessoal,
Como eu monto uma query em hql que me ajude a pegar os dados da seguinte maneira (vou escrever em sql que dai acho que fica facil pra todo mundo entender):

select * from contatos, rotulos_contato where contatos.id = rotulos_contato.id_rotulo;

isto é eu quero pegar todos os contatos que atendam a um determinado rotulo.

No hibernate eu fiz o mapeamento de um pra n. entre essas duas entidades. (isto eh 1 contato pode possuir n rotulos)
(obs o mapeamento esta como inverse=true)

eu tentei algo assim:

from contatos in class model.Contato where contatos.rotulosContato.rotulo.id = '" + rotuloCons + "'";

onde rotulosContato eh o atributo (do tipo Set) da minha classe Contato (que possui o conj. de rotulos do usuario)
e como percebem tento acessar a propriedade id do objeto rotulo em seguida…

Creio que nao seja assim que deva ser feito soh postei pra vcs terem uma ideia…

O erro que ele da eh: net.sf.hibernate.QueryException: expecting 'elements' or 'indices' after: rotulo

Valeu pessoal!

from Contato as contato join contato.rotulos as rotulo where rotulo.id = ?

Lipe, obrigado por responder mas esta acontecendo o seguinte desta forma ele retorna uma lista nao com objetos contato mas uma lista de objetos onde cada objeto contem dois objetos um contato e outro rotulo,

nao tem uma forma de ele retornar uma lista de objetos Contato?

obrigado

Poderia nos dizer como você fez o mapeamento?

uma sugestão:

Ola carlos, tentei sua sujestao mas continua dando:

net.sf.hibernate.QueryException: expecting 'elements' or 'indices' after: rotulo [select contato from model.Contato as contato join contato.rotulosContato.rotulo.id = '1']

Obs: eu tive que mudar sua linha para:

select contato from Contato as contato join contato.rotulosContato.rotulo.id = '1' 

Em funcao de eu ter nao um objeto rotulos na classe contato mas sim um objeto do tipo Set rotulosContato que possui objetos rotulo. (que este tem a propriedade id) que nos interessa na query…

[quote=CarlosDelfino]uma sugestão:

Ok Fernando, colocarei abaixo como estao mapeadas as classes:

//Classe Contato
Integer id;
Set<RotuloContato> rotuloContato;

//Classe RotuloContato
Integer id;
Contato contato;
Rotulo rotulo;

//Classe Rotulo
Integer id;
String descricao;

Obs: Como podem ver um contato possui um conjunto de rotulosContato (objeto que, como verao, representa um relacionamento entre um ou mais contatos e um rotulo).

Mapeamentos

//Contato
    <id> ... </id>
    <set name="rotulosContato" inverse="true" cascade="all-delete-orphan">
        <key column="ID_CONTATO"/>
        <one-to-many class="model.RotuloContato"/>
    </set>
 
//RotuloContato
    <id> ... </id>
    <many-to-one name="contato" class="model.Contato" column="ID_CONTATO"/>
    <component name="rotulo" class="model.Rotulo">
        <property name="id" column="ID_ROTULO" type="int"/>
    </component>

//Rotulo
    <id> ... </id>
    <property name="descricao" type="java.lang.String" .../>

Como podem ver o objeto rotulo da classe RotuloContato esta mapeado como um componente do hibernate.

Eu nao sei como representar numa query hql que o que quero eh todos os objetos Contato que contenham em seu objeto RotulosContato um objeto Rotulo com id=‘1’ por exemplo!

Obrigado pela ajuda q estao dando pessoal…

galera o problema persiste… alguem teria alguma ideia?
valeu!