Olá!
Preciso fazer uma consulta com Criteria como no exemplo abaixo:
select * from atividade a
left join responsavel r on r.id = a.id_responsavel
left join cliente c on c.id = a.id_cliente
where r.id = 1 or c.id = 1
No caso, cada Atividade está mapeada com um Reponsável e um Cliente, e estou filtrando apenas as atividades que tenham responsável igual a 1 ou cliente igual a 1. Enfim, muito simples. Só que não consigo fazer a restrição. Fiz assim:
Criteria c = sessao.createCriteria(Atividade.class)
.createAlias("responsavel", "r")
.createAlias("cliente", "c")
.add(
Restrictions.or(
Restrictions.eq("r.id", 1),
Restrictions.eq("c.id", 1)
)
);
O resultado obtido não é o esperado. Aparentemente, quando crio o alias de “responsavel” e logo após o de “cliente”, o Hibernate aninha os dois, como se cliente estivesse “dentro” de responsável. Gostaria de saber como fazer para que isso não ocorra
Grato!