Consulta sql - hibernate - resolvido

O projeto importa este projeto com.trg.search.Search

select * from ( select * from CL cl_ 
where cl_.ATIVO=1 
    and not (exists (select listacli1_.CLI_ID from CLI_FID listacli1_ 
    where cl_.CLI_ID=listacli1_.CLIENTE_ID and ( listacli1_.ATIVO=1) 
    and (listacli1_.EMPRESA_ID<>10 or listacli1_.EMPRESA_ID is null))) 
order by cliente0_.NOMBCLIENTE asc ) where rownum <= 10;

Mas quero que gere assim:

select * from ( select * from CL cl_ 
    where cl_.ATIVO=1 
        and (exists (select listacli1_.CLI_ID from CLI_FID listacli1_ 
        where cl_.CLI_ID=listacli1_.CLIENTE_ID and ( listacli1_.ATIVO=1) 
        and (listacli1_.EMPRESA_ID<>10 or listacli1_.EMPRESA_ID is null))) 
    order by cliente0_.NOMBCLIENTE asc ) where rownum <= 10;

Isto é sem o not, antes do and (exists

Classe:

clibusca.addFilterAll("listaClienteFidelidade", Filter.equal("emp.id", emp.getId()));

O que pode ser ?

Tem que debugar o que faz addFilterAll.

Pq nao faz seu próprio SQL pra nao ficar sempre dependente dessas mágicas?

Eu entendo que o filtro foi incluído:

E equivale a esta parte da query

Porém, precisaria ver o trecho completo da montagem da consulta para entender por que do and not…

Só no último caso.

Esta parte where cl_.ATIVO=1

@JoinColumn(name = "CLI_ID", referencedColumnName = "CLI_ID")
@Where(clause = "activo=1")
private List<CliFid> listaCliFid;

Esta parte que eu não sei como foi incluido.

Sei que ele utilizar essa classe com.trg.search.Search

Só com esse trecho de código que postou fica impossível saber.

A classe principal é Cli.

Tenho este atributo

@JoinColumn(name = “CLI_ID”, referencedColumnName = “CLI_ID”)
@Where(clause = “activo=1”)
private List listaCliFid;

A classe listaCliFid, tenho o atributo:

@OneToOne
@JoinColumn(name = "CLIENTE_ID")
private Cli cli;

O que faz a ligação e faz parte para esta consulta.

Aqui utiliza os métodos desta classe: https://github.com/thiagosoares/plus-framework/tree/master/generic-hibernate-dao/search/src/main/java/com/googlecode/genericdao/search

No caso o metodo addFilterAll, o que não está funcionando.

Projeto parou em 2011. Cara, vai se livrando aos poucos disso. Usa SQL ou pelo menos HQL pra essa query específica, o resto vê depois.

Isso que eu percebi kkk

Vou mudar aqui e ve o que o pessoal acima fala.

O problema aqui, é o componente e não pude mudar.

mas foi ajustado usando outro

clienteBusqueda.addFilterIn("listaClienteFidelidade.empresa.empresaId", Arrays.asList(emp.getId()));