POST nos campos codigo [cidade] e [UF] no banco de dados.

28/06/2017

0

Bom dia galera, estou passando por um aperreio de 5 dias que não consigo descobrir o problema.
Criei uma lista de cidades por UF usando o mesmo método post do cadastro de cliente, afinal é o mesmo botão, quando ele salva os dados de um novo cliente precisa inserir os códigos da cidade no BD. Mas gera erro que a cidade está sendo selecionada em string sendo que no BD espera inteiros. Segue abaixo as classes e os métodos de cada um:

package br.com.alpha.core.modelo.entidades;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;

import lombok.Data;

@Data
@Entity
@Table(name="Cidades")
public class Cidade {

@EmbeddedId
private CidadeId id;

@Column(name="Cidade")
private String nome;

@Column(name="CodigoIBGE")
private Integer codigoIBGE;

@Column(name="UF", insertable=false, updatable=false)
private String uf;
}
=====================================================

package br.com.alpha.core.modelo.entidades;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import br.com.alpha.vendas.modelo.entidades.CondicaoDePagamentoValorMinimo;
import br.com.alpha.vendas.modelo.entidades.FormaDePagamento;
import lombok.Data;

@Data
@Entity
@Table(name="UF")
public class UF {

@Id
@Column(name="Sigla")
private String id;

@Column(name="Descricao")
private String descricao;

@Column(name="CodigoRegiao")
private Integer regiao;

@Column(name="TabelaWebLoja")
private Integer tabelaWebLoja;

@ManyToMany
@JoinTable(name="UF_FormadePagto",
joinColumns=@JoinColumn(name="UF",referencedColumnName="Sigla"),
inverseJoinColumns=@JoinColumn(name="FormadePagto",referencedColumnName="Codigo"))
private List<FormaDePagamento> formaDePagamento;

@OneToMany
@JoinColumn(name="UF",referencedColumnName="Sigla")
private List<CondicaoDePagamentoValorMinimo> condicoes;

}
===============================================================================================

package br.com.alpha.core.modelo.entidades;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;

import lombok.Data;

@Embeddable
@Data
public class CidadeId implements Serializable {

private static final long serialVersionUID = 1L;

@Column(name="Codigo")
private Integer codigo;

@Column(name="UF")
private String uf;

}
===================================================

package br.com.alpha.core.modelo.entidades;

import java.util.Random;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.springframework.security.authentication.encoding.Md5PasswordEncoder;

import lombok.Data;

@Data
@Entity
@Table(name="Clientes")
public class Cliente {


@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name="Codigo")
private Integer id;

@Column(name="Nome")
private String nome;

@Column(name="RazaoSocial")
private String razaoSocial;

@Column(name="CNPJCPF")
private String cnpjCpf;

@Column(name="UF",insertable=false,updatable=false)
private String uf;

@Column(name="Endereco")
private String endereco;

@Column(name="Bairro")
private String bairro;

@Column(name="Fone")
private String fone;

@Column(name="Cep")
private String cep;

@Column(name="Email")
private String email;

@Column(name="SiteUsuario")
private String usuario;

@Column(name="SiteSenha")
private String senha;

@ManyToOne
@JoinColumns({@JoinColumn(name="Cidade",referencedColumnName="Codigo"),
@JoinColumn(name="UF",referencedColumnName="UF")})
private Cidade cidade;


public String generateNewPassword() {
char[] chart = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',
'Z' };
char[] senha = new char[6];

Random rdm = new Random();

for (int x = 0; x < 6; x++) {
senha[x] = chart[rdm.nextInt(chart.length)];
}
String password = new String(senha);

this.senha = new Md5PasswordEncoder().encodePassword(password, null);

return password;
}
/*
@ManyToMany
private List<FormaDePagamento> formaDePagamento;

@ManyToMany
private List<CondicaoDePagamento> condicaoDePagamento;
*/
}

======================================================================


package br.com.alpha.core.controlador;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import br.com.alpha.core.modelo.entidades.Cliente;
import br.com.alpha.core.repositorio.ClienteRepositorio;


@Controller
public class ClienteControlador {

@Value("${alpha.url}")
private String url;

@Autowired
private ClienteRepositorio clienteRepositorio;

@RequestMapping("/home")
public @ResponseBody String home(){
System.out.println("home");
return "Home";
}

@RequestMapping("/cliente/")
public @ResponseBody Cliente findById(@PathVariable("id") Integer id){
System.out.println(id);
Cliente cliente = clienteRepositorio.findOne(id);
return cliente;
}

@RequestMapping(value="/cliente/salvar",method=RequestMethod.POST)
public ModelAndView salvarCliente (@ModelAttribute("cliente") Cliente cliente){
clienteRepositorio.save(cliente);
return new ModelAndView("redirect:"+url+"/distribuidor/cadCliente.php");
}


}
Justino

Justino

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar