Preciso fazer uma consulta envolvendo 4 classes, FISICA E JURICA que herdam de PESSOA, e CLIENTE que possiu um relacionamento ManyToOne com PESSOA.
quando faço a consulta, eu passo o tipo e a identidade que eu quero que me mostre na tabela
TIPO: … IDENTIDADE:
(x)0-todos…(x)0-TODOS
( )1-CLIENTE … ( )1- FISICA
( )2-NAO CLIENTE … ( )2-JURIDICA
pensei em fazer dessa forma
public List<Pessoa> ListarPessoa(String consulta, int tipo, int identidade) throws Exception {
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Criteria p = session.createCriteria(Pessoa.class);
switch (identidade) {
case 0: // TODAS AS PESSOAS
p.list();
break;
case 1: //pessoas fisicas
p.add(?? me traga somente PessoasFisicas);
break;
case 2: //pessoas juridicas
p.add(?? me traga somente PessoasJuridicas);
break;
}
switch (tipo){
case 1:// APENAS CLIENTES
p.add(?? somente os que tbm sao clientes (Cliente.class);)
break;
case 2:// PESSOA que ainda nao são clientes
p.add (?? todos que nao sao clientes!!)
break;
}
p.add(Restrictions.like("nomeRazao", consulta + "%"));
setPessoas(??A lista que me restou??);
}
catch(Exception e) {
e.printStackTrace();
}finally {
session.close();
}
return pessoas;
}
public void setPessoas(List<Pessoa> pessoas) {
this.pessoas = pessoas;
qualquer ajuda no Codigo, na Logica, ou com algum tutorial(em portugues^^) agradeço!