Bom dia galera,
acabei de executar uma HQL aqui, e estou tendo um retorno um pouco que “estranho”.
Minha HQL:
Query query = currentSession.createQuery("SELECT tab FROM Tabela tab WHERE tab.est_id IN (SELECT cli.cid_id.est_id FROM Cliente cli WHERE cli.ven_id = :vendedor) OR tab.cli_id.ven_id = :vendedor");
query.setParameter("vendedor", vendedor);
Tenho duas clausulas. Se eu deixo as duas (como está) ele me retorna só os dados que combina com a clausula “tab.cli_id.ven_id = :vendedor”. Se eu deixo só a clausula “tab.est_id IN (SELECT cli.cid_id.est_id FROM Cliente cli WHERE cli.ven_id = :vendedor)” ele retorna os dados corretamente dessa clausula.
Por que isso está ocorrendo? Minhas clausulas estão como “OR”, então deveria retornar as duas, correto? Por que quando deixo as duas, só me retorna uma? E se eu deixo só uma, ela retorna corretamente a clausula que deixei.
Gostaria de consertar isso, e entender o porque disso…
Obrigado desde já!
Abraço!