Boa noite galera .
Peço desculpas primeiramente pois sou novo no fórum e tbm em desenvolvimento em Java Web.
Me chamo Paulo e estou com o seguinte problema e precisando de ajuda para dar continuidade os estudos.
O cenário é o seguinte: Tenho duas entidades.
A primeira entidade chamada Pessoa e a segunda Endereço.
No relacionamento entre essas entidades no caso seria : uma pessoa para um ou muitos endereços.
Então construí minhas classes Modelo, repository, service e controller com os metodos de gravação edição localização etc.
A minha duvida é a seguinte.
Como faço para inserir o meu objeto endereço na lista de endereço da pessoa na pagina html que tenho.
Pois as funções de insert e update para Pessoa está funcionando mas não consigo adicionar o endereço.
Abaixo segue código.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private Integer id;
@Column(name = "Codigo")
private String codigo;
@Column(name = "Nome")
private String nome;
@Column(name = "Apelido")
private String apelido;
@Column(name = "Cpf_cnpj")
private String cpf_cnpj;
@OneToMany(mappedBy = "pessoa", cascade = CascadeType.ALL)
private List<Endereco> enderecos = new ArrayList<Endereco>();
@Column(name = "Tipo")
private String tipo;
@Entity
@Table(name = “Endereco”, schema = “dbo”)
public class Endereco {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private Integer id;
@ManyToOne
@JoinColumn(name = "Pessoa_Id")
private Pessoa pessoa;
@Column(name = "Numero")
private String numero;
@ManyToOne
@JoinColumn(name = "tipo_logradouro_id")
private TipoLogradouro tipo;
@Column(name = "Nome")
private String nome;
@ManyToOne
@JoinColumn(name = "Bairro_Id")
private Bairro bairro;
@ManyToOne
@JoinColumn(name = "Cidade_Id")
private Cidade cidade;
DTO
public class PessoaCadastro {
private Pessoa pessoa;
private Endereco endereco;
private List<Bairro> bairros = new ArrayList<Bairro>();
private List<Cidade> cidades = new ArrayList<Cidade>();
private List<TipoLogradouro> logradouros = new ArrayList<TipoLogradouro>();
Controller
public ModelAndView cadastro(PessoaCadastro formPessoa) {
return new ModelAndView(“cadastro-pessoa”, “formPessoa”, formPessoa);
@RequestMapping(value = "/cadastro-pessoa", method = RequestMethod.GET)
public ModelAndView novo() {
PessoaCadastro pessoa = new PessoaCadastro();
pessoa.setPessoa(new Pessoa());
pessoa.setEndereco(new Endereco());
pessoa.setLogradouros(serLogradouro.findAll());
pessoa.setBairros((List<Bairro>) serBairro.findAll());
pessoa.setCidades((List<Cidade>) serCidade.finfAll());
return cadastro(pessoa);
}
@RequestMapping(value = "/salvar-pessoa")
public String saveOrUpdate(PessoaCadastro pessoa) {
service.saveOrUpdate(pessoa.getPessoa());
return "redirect:/lista-pessoa";
}
@RequestMapping(value = "/adionar-endereco", method = RequestMethod.GET)
public ModelAndView AdionarEndereco(PessoaCadastro pessoa) {
pessoa.addEnderecoPessoa(pessoa.getEndereco());
return cadastro(pessoa);
}
Esse ultimo método estou chamando na pagina de cadastro de pessoa onde preencho as informações de endereço clico no botão que irá acionar a url /adionar-endereco para adicionar em uma lista de endereço da pessoa. Mas não esta funcinando pois o objeto esta nulo. Não sei como faz essa rotina.
Mas o cenário seria o mesmo no caso de Orçamento e seus itens. A pergunta é como faço para adicionar objeto em uma lista?
Exe: Orcamento e itens de orcamento. Onde seleciono produto e vou guardando na lista até o momento de salvar e persistir no bando de dados .
Desculpem mais uma vez, não sei se me fiz entender.
Desde já agradeço.