Tenho uma busca de Produtos e quero restringir que soh me listem os produtos daquela empresa. Meu problema esta que a empresa se relaciona com funcionarios e os funcionarios que se relacionam com produtos. Tentei adicionar uma Restriction, mas fiquei com o erro abaixo:
Como que ficar a criteria para qdo fosse passar uma colecao?
Criteria criteria = session.createCriteria(ProdutoBean.class);
Criteria c = criteria.createCriteria("marcas");
c.add(Restrictions.eq("modelos.nome", modelo.getNome()));
Assim nao funciona hehe
Alguem sabe?
g4j
Só uma dica: Quando vc coloca “modelos.nome” na restrição, o hibernate vai tentar encontrar um atributo na tua classe com este nome e não vão encontrar.
Talvez seja mais simples usar HQL pra fazer o que vc quer.
D
davidpadilha
Mas como vou juntar as 2 colecoes numa HQL?
g4j
Seguindo a descrição do teu modelo:
1Empresa-NFuncionarios1Funcionario-NCargas
Você deve ter uma classe Empresa com um Set de funcionarios e vc deve ter uma classe Funcionario com um Set de cargas;
Em Carga vc tem um objeto Funcionario que por sua vez tem um objeto Empresa;
Ficaria parecido com isto para listar as cargas de uma empresa:
String hql = "select ca from Carga ca join ca.funcionario fu join fu.empresa em where em.idEmpresa = ... order ...";
von.juliano
davidpadilha:
Opa…to chegando la…esses exemplos funcionaram e se eu precisar buscar dentro de 2 Collections?
Tipo, Produto tem a collection Marca e dentro da Marca tem a Modelo…como que faria?