Desculpem pela minha ignorância, sou novo em java mas tenho estudado bastante o desenvolvimento web com spring boot. E no meio desses estudos estou criando um projetinho com a finalidade de aprender . Pois bem.
Cheguei a um ponto do qual não consigo sair . Colocarei trechos do meu código abaixo para melhor exemplificar.
Modelos :
@Entity
@Table(name = "Pessoa", schema = "dbo")
public class Pessoa {
Na minha view eu tenho os campos correspondes a Pessoa e uma tabela onde irão ser armazenados a lista de endereços da Pessoa que eu for adicionar.
Ao abrir a pagina eu carrego as informações de cadastro da pessoa, mas só que não sei como faço para ir adicionando endereços para essa pessoa e depois gravar. Tenho método adicionar endereco mas só retorna null. Essa situação é praticamente a mesmo em um caso de Orçamento e seus itens no qual a pessoa cria o Orçamento e vai acionando os produtos na lista e depois grava. É isso que eu não sei fazer.
Por favor me ajudem.
Desde de já agradeço e desculpem pela minha ignorância.
Pergunta
punix0210
Boa noite galera.
Desculpem pela minha ignorância, sou novo em java mas tenho estudado bastante o desenvolvimento web com spring boot. E no meio desses estudos estou criando um projetinho com a finalidade de aprender . Pois bem.
Cheguei a um ponto do qual não consigo sair . Colocarei trechos do meu código abaixo para melhor exemplificar.
Modelos :
@Entity
@Table(name = "Pessoa", schema = "dbo")
public class Pessoa {
@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;
---------------------------------------------------------
Classe TDO para carregar todos esses objetos na View através da controller
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>();
public List<TipoLogradouro> getLogradouros() {
return logradouros;
----------------------------------------------------
Classe Controller
@Controller
// @RequestMapping("/pessoa")
public class PessoaController {
@Autowired
PessoaService service;
@Autowired
BairroService serBairro;
@Autowired
CidadeService serCidade;
@Autowired
TipoLogradouroService serLogradouro;
@RequestMapping(value = "/lista-pessoa", method = RequestMethod.GET)
public String findAll(Map<String, Object> model) {
model.put("pessoas", service.findAll());
return "/lista-pessoas";
}
// @RequestMapping(value = "/lista-pessoa", method = RequestMethod.GET)
// public ModelAndView findByAll() {
// return new ModelAndView("lista-pessoas", "pessoas", service.findAll());
// }
@RequestMapping(value = "/excluir-pessoa", params = "id", method = RequestMethod.GET)
public String excluir(@RequestParam("id") Integer id) {
service.delete(id);
return "redirect:/lista-pessoa";
}
public ModelAndView cadastro(PessoaCadastro formPessoa) {
return new ModelAndView("cadastro-pessoa", "formPessoa", formPessoa);
}
@RequestMapping(value = "/cadastro-pessoa", params = "id", method = RequestMethod.GET)
public ModelAndView editar(@RequestParam("id") Integer id) {
PessoaCadastro pessoa = new PessoaCadastro();
pessoa.setPessoa(service.findOne(id));
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 = "/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);
}
Na minha view eu tenho os campos correspondes a Pessoa e uma tabela onde irão ser armazenados a lista de endereços da Pessoa que eu for adicionar.
Ao abrir a pagina eu carrego as informações de cadastro da pessoa, mas só que não sei como faço para ir adicionando endereços para essa pessoa e depois gravar. Tenho método adicionar endereco mas só retorna null. Essa situação é praticamente a mesmo em um caso de Orçamento e seus itens no qual a pessoa cria o Orçamento e vai acionando os produtos na lista e depois grava. É isso que eu não sei fazer.
Por favor me ajudem.
Desde de já agradeço e desculpem pela minha ignorância.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.