Olá Pessoal estou tendo o seguinte problema com o Hibernate.
Obs: Não estau utilizando Herança e Sim a Composição;
Tenho uma classe de Pessoa e outra de PessoaJuridica
A de Pessoa contem (cpfCnpj, nomeRazaoSocial) e a de
Pessoa Jurídica contem (Pessoa, nomeFantasia, dataCriacao)
tenho um metodo de validacao antes de persistir a pessoa
juridica que checa se o objeto Pessoa da PessoaJuridica tem
um Cnpj ou Cpf se tiver Cpf retorno uma mensagem pro usuario
dizendo que pessoaJuridica deve possuir um Cnpj caso contrario
persisto o objeto.
Na View quando alimento o objeto PessoaJuridica o objeto pessoa
é alimentado somente o Id ficando ± assim
pessoaJuridica.getPessoa().setId(1);
pessoaJuridica.setNomeFantasia(“Teste”);
pessoaJuridica.setDataCriacao(componete.getData());
<<<< PROBLEMA >>>
quando vou fazer a validação (pessoaJuridica.getPessoa().getCpfCnpj())
é gerada uma exception dizendo que a propriedade cpfCnpj da pessoa esta nula
devido na View so ter setado o Id, mas isso tudo ocorre dentro de uma
session do hibernate, que na qual quando chamo o getPessoa() deveria
selecionar o objeto no banco e me retorna-lo alimentado (de certa forma automatico)
de acordo com o id ou estou errado?
Agora quando seleciono a pessoaJuridica e chamo o getPessoa() dentro de uma session
o Hibernate ja me devolve a Pessoa alimentadA, tudo direitinho.
Alguem sabe o porque disto? ou o get de objetos desta forma que estou querendo
não é possível, desde já agradeço, abraço.
//PESSOA
public class Pessoa extends Default {
public Pessoa(){}
private String cpfCnpj;
private String nomeRazaoSocial;
//Gets/Sets
}
//PESSOA JURIDICA
public class PessoaJuridica extends Default {
public PessoaJuridica(){}
private Pessoa pessoa;
private String nomeFantasia;
private Date dataCriacao;
//Gets/Sets
}
//TESTE
public class Teste {
public boolean validate(PessoaJuridica pj){
if (!(isCnpj(pj.getPessoa().getCpfCnpj())))
return false;
return true;
}
private boolean isCnpj(String cpfCnpj){
if (cpfCnpj.length() == 14)
return true;
else
return false;
}
public void save(PessoaJuridica pj){
if (!validate(pj))
return;
//metodo que salva
}
}