Ir para conteúdo
Fórum Script Brasil
  • 0

(Spring boot) Como adicionar objeto em uma lista?


punix0210

Pergunta

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

  • 0
Em 14/10/2017 at 01:15, punix0210 disse:

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.

 

 

 

Ninguém consegui me ajudar???

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...