Bom dia.
Estou tendo problemas ao realizar consulta com filtros usando jpql. Tenho a tabela Pessoa com um relacionamento @OneToMany com InfoCriminal, estou fazendo a consulta da seguinte forma, quando deixo os campos em branco de ambas as tabelas penso que seria para retornar todos os registros da tabela Pessoa mas isso não ocorre, pois se houver algum registro “null” da tabela filha InfoCriminal o registro de Pessoa não retorna.
Alguém tem alguma dica para resolver isso?
public List<Pessoa> filtroCompleta(Pessoa pessoa, InfoCriminal infoCriminal) {
String jpql ="SELECT DISTINCT p FROM Pessoa p LEFT JOIN p.infoCriminal ic WHERE (p.nome like :nome and ic.artigo like :artigo) ";
TypedQuery<Pessoa> query = manager.createQuery(jpql, Pessoa.class);
if (pessoa.getInfoCriminal()==null) {
}
query.setParameter("nome", "%" + pessoa.getNome() + "%");
query.setParameter("artigo", "%" + infoCriminal.getArtigo() + "%");
return query.getResultList();
}