Ola, vi que tem varios topicos aqui sobre, mas nenhum é o meu caso.
Eu quero montar uma query com left join. Nao sei porque mas se eu fizer o select dessa forma nao funciona:
select f.referencia, p.ean,p.descricao from produto p
left join itensfornecedor f on p.idproduto=f.idproduto
where p.ean=7894900010015 and idfornecedor=57;
A JPQL esta justamente traduzindo a query dessa forma.
@Query("select new dto.ProdutoConsulta(p.id,p.ean,p.descricao, pp.precoCusto, pf.codigoFornecedor)"
+ " from Produto p join p.produtosEmpresa pp left join p.produtosFornecedor pf where pp.empresa.id =:idLoja"
+ " and p.ean in (:codigos) and pf.fornecedor.id=:idFornecedor")
public List<ProdutoConsulta> listarProdutosPorEan(@Param("codigos") Set<Long> codigos, @Param("idLoja") Long idLoja,
@Param("idFornecedor") Long idFornecedor);
eu so consegui fazer esse select funcionar dessa forma, colocando o idFornecedor no ON do join
select f.referencia, p.ean,p.descricao from produto p
left join itensfornecedor f on p.idproduto=f.idproduto and idfornecedor=57
where p.ean=7894900010015;
nesse caso como eu vou conseguir fazer com que a jpa traduza a query dessa forma se eu nao especifico ON no join dela?