Criar Joins com JPL

1 resposta
Jedi_FeniX

É possível criar Joins com JPL?

Tenho a seguinte estrutura:

@Entity
@NamedQuery(
   name = "consultarFabrica",
   query = "SELECT f FROM Fabrica f INNER JOIN c.clientes WHERE c.id = :id")
public class Fabrica implements Serializable {

   @Id
   @Column( name = "id_fabrica" )
   private Long id;

   @OneToMany
   @JoinColumn( name = "id_cliente", referencedColumnName = "id_cliente" )
   private List<Cliente> clientes;
}

Quando eu executo a query "consultarFabrica" o JPA executa duas queries.

Uma para pegar a fabrica:
select * from fabrica f inner join cliente c on( f.id_cliente = c.id_cliente ) where f.id_fabrica = ?
E outra para pegar os clientes:
select * from cliente c where id_cliente = ?

Esta última, em específico, é executada mais de uma vez.

Acredito que o erro seja no mapeamento da classe, alguém saberia dizer aonde esta o erro?

Desde já agradeço a ajuda de todos.

1 Resposta

Hebert_Coelho

select c from cliente c join c.carros

Tente assim.

Criado 12 de maio de 2013
Ultima resposta 12 de mai. de 2013
Respostas 1
Participantes 2