Tenho a seguinte herança Pessoa -> fisica ->Advogado e Funcionario (Existe mais entidades herdando de pessoa.)
Como buscar todas as pessoas que sao Advogados e Funcionario via criteria,
ou em caso de trazer 2 listas distinstas(uma de advogados outra de funcionario ), tem como unir em uma unica lista ?
Se você garantir que os únicos filhos de PessoaFisica são Funcionarios e Advogado, basta fazer a busca pela classe mãe. O Hibernate suporta queries polimórficas tranquilamente (você pode até buscar por Object e fazer um dump bizarro do banco 
Realmente, uma solução simples foi buscar Pessoas fisicas!
Comi bronha nessa =p
Vlw pela ajuda.