Ajuda select hibernate (crieteria)

3 respostas
Deluxe

Pessoal
eu tenho que fazer um select em uma tabela de relacionamento

exemplo

Tabela UF
cod_uf

Tabela Grupo
cod_grupo

Tabela GrupoUF
cod_uf
cod_grupo

minha classe Grupo está assim

@ManyToMany(fetch=FetchType.EAGER, targetEntity=UF.class, cascade={CascadeType.ALL}) @JoinTable(name="GRUPO_UF", schema = "assinatura", joinColumns={@JoinColumn(name="COD_GRUPO")}, inverseJoinColumns={@JoinColumn(name="COD_UF")}) private Set<UF> ufs;

Eu preciso fazer um select na tabela de relacionamento (GrupoUF) para trazer todos registros que tenha uma determinada UF
como fazer isso usando criteria?

3 Respostas

Deluxe

Esqueci da outra classe

Classe UF está assim

@ManyToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE}, mappedBy="ufs", targetEntity=GrupoDistribuicao.class) private Set<GrupoDistribuicao> grupoDistribuicao;

alguém ?

von.juliano

Criteria c = session.createCriteria(Grupo.class); c.createAlias("ufs", "uf"); c.add(Restrictions.eq("uf.id", ufId)); // aqui você passa o ID da uf que você quer List<Grupo> grupos = c.list();Testa ae e vê se resolve. Flw! :thumbup:

cezbatistao

fala ae cara,

eu dei uma olhada no q vc mandou, e tentei fazer algo nas cegas…
acho q vc vai ter q mudar algumas coisas, se não tudo :stuck_out_tongue:
kkkkkkkk

mas da uma olhada no q eu fiz…

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(GrupoUF.class);
		detachedCriteria.setProjection(Projections.property("idGrupo")); // TODO nao sei o nome da propriedade da classe de relacionamento para o grupo na classe GrupoUF
		detachedCriteria.createAlias("ufs", "uf");
		detachedCriteria.add(Restrictions.eq("uf.codigo", "SP")); // se o codigo for a proprio estado, tipo SP msm, nao precisa criar o alias e usar o codigo direto na classe de relacionamento GrupoUF
		
		Criteria criteria = session.createCriteria(GrupoDistribuicao.class);
		criteria.add(Subqueries.propertyEq("idGrupo", detachedCriteria)); // TODO nao sei o nome da propriedade do id do grupo na classe GrupoDistribuicao
		List&lt;GrupoDistribuicao&gt; lista = (List&lt;GrupoDistribuicao&gt;)criteria.list();

espero ter ajudado!

abraços

Criado 16 de setembro de 2009
Ultima resposta 16 de set. de 2009
Respostas 3
Participantes 3