Consulta envolvendo um relacionamento N para N

2 respostas
C

Ola,

fiz o relacionamento entre duas classes, onde um chamado pode ter vários equipamentos e um equipamento pode estar presente em diversos chamados, ou seja, um relacionamento N para N. Até aqui tudo bem, está gravando tudo direitinho no banco de dados. Sendo que fiz diversas consultas como: me retorne todos os chamados, depois fiz outra para me retornar todos os equipamentos e tudo funciona perfeito. Sendo que agora precisaria retornar todos os equipamentos presentes em um determinado chamado e não estou conseguindo, visto que não existe uma entidade especifica para isso (visto que o relacionamento é feito pelas tags JPA). Alguém poderia me dizer qual a melhor forma para fazer isso? Estou usando createQuery (EntityManager)

Vou colocar o trecho com os relacionamentos entre as classes(só vou colocar o campo do relacionamento para não poluir muito o tópico)

public class Chamado {

.

.

.

@ManyToMany

@JoinTable( name = equipamentos_chamado,

joinColumns = {

@JoinColumn(name = chamado_id)},

inverseJoinColumns = {

@JoinColumn(name = equipamento_id)})

private List equipamentos;

.

.

.

}
public class Equipamento {

.

.

.

@ManyToMany(mappedBy = equipamentos)

@JoinTable(    name = equipamentos_chamado,

joinColumns = {

@JoinColumn(name = equipamento_id) },

inverseJoinColumns = {

@JoinColumn(name = chamado_id)})

private List chamados;

.

.

.

}

agradeço

2 Respostas

Andre_Brito

Dar um getEquipamentos não funciona? O banco criou sozinho uma tabela chamada “equipamentos_chamado”?

C

Não era bem isso que eu queria… mas consegui resolver. Se interessar a alguém:

em.createQuery(“select object(e) from Equipamento e inner join e.chamados c where c.id=:chamado”);

Criado 11 de junho de 2010
Ultima resposta 14 de jun. de 2010
Respostas 2
Participantes 2