Ola boa noite.
Tenho a seguinte cenário. Tenho as seguintes classes: PessoaFisica e PessoaJurídica que extendem de Pessoa. Além disso tenho a classe Proprietario que tem por composição Pessoa. Ocorre que eu tenho uma tela que precisa apresentar os dados de um proprietario (NOME, CPF, RG E SEXO) a partir de uma pesquisa feita pelo o nome conforme o DAO abaixo.
public List<Proprietario> findProprietarioByNome(String nome) {
return em
.createQuery(
"select p from Proprietario p where lower(p.pessoa.nome) like:nome order by p.pessoa.nome",
Proprietario.class)
.setParameter("nome", nome.toLowerCase() + "%")
.getResultList();
}
Após a execução da pesquisa é retornando uma lista de Proprietário, até aí tudo dentro do esperado. Porém eu preciso apresentar na tela os dados de CPF, RG e Sexo que são atributos de PessoaFisica, conforme o diagrama que apresentei. Fazendo prp.getPessoa.getNome, eu consigo acessar o atributo nome da Entidade Pessoa, porem eu não consigo fazer prp.getPessoa.getPessoaFisica.getCPF na Entidade PessoaFisica, visto que em pessoa não existe nenhuma referência para PessoaFisica. Há uma maneira de acessar os atributos de PessoaFisica a paritr de Proprietario, da forma que como está projetado? A herança aqui no caso do meu projeto se justifica, visto que uma PessoaFisica nunca irá Fazer o papel de PessoaJuridica.