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
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?
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…
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).
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!