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

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

Aceitar