Saudações… Estou recorrendo a comunidade java após muita pesquisa…
Meu problema é o seguinte…
Estou desenvolvendo uma aplicação Java com Spring MVC.
Tenho uma entidade pessoa modelada da seguinte forma:
public class Pessoa {
private String email;
private String senha;
private String logradouro;
private String bairro;
private String cep;
private Boolean status;
get e set ...
}
public class PessoaFisica extends Pessoa {
private String nome;
private String sobrenome;
private String cpf;
private String rg;
private Date dataNascimento;
private String sexo;
get e set ...
}
public class PessoaJuridica extends Pessoa {
private String nomeFantasia;
private String razaoSocial;
private String cnpj;
private String ie;
private Date fundacao;
private Double capitalSocial;
get e set ...
}
tudo isso funciona corretamente… mas ai vem o problema tenho uma classe assinatura… onde o assinante pode ser tanto pessoa física quanto pessoa jurídica.
as boas práticas me falam para fazer umacomposição da entidade Pessoa. ok…
public class Assinatura {
private String reEmail;
private String reSenha;
private String cupom;
private String token;
**private Pessoa ps;**
get e set ...
}
show… fuiciona tb… mas o problema está na hora de resgatar isso no Controller do Spring usando o @ModelAttribute do spring
@RequestMapping(value = "/assinatura", method = RequestMethod.POST)
public ModelAndView postSignature(
@ModelAttribute("asign") Assinatura asign
) throws Exception {
AssinaturaService as = new AssinaturaService();
as.create(asign);
ModelAndView mv = new ModelAndView("/site/assinatura");
return mv;
}
dessa forma o Srping naum alcança as entidades filhas de pessoa, retornando suas propriedades nulas…
Como fazer para com que o spring alcance as entidades filhas de Pessoa (física ou jurídica de acordo com o que vem do formulário da jsp) usando composição? tem como? essa é a minha dúvida. Alguém já teve um problema parecido??
Obrigado