Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Problema ao adicionar

Estou tentando adicionar um "convidado" , porém esta dando esse seguinte erro

Um convidado possui:-id -nome -telefone -email

erro:

java.sql.SQLException: Field 'id' doesn't have a default value

Eu achei estranho esse erro, pois ele não encontrou o id de cliente, porém um id tem que ser gerado e não inserido manualmente. Alguem poderia me ajudar?

Obrigado !

Cadastro:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Adicionar Convidados - Spring Boot</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"/>

</head>
<body>

    <form action="salvar" method="POST">

        <div class="form-group">
            <label>Nome</label>
            <input type="text" class="form-control" name="nome" placeholder="Insira o nome"/>
        </div>

        <div class="form-group">
            <label>Email</label>
            <input type="email" class="form-control"  name="email" placeholder="Insira o email"/>
        </div>

        <div class="form-group">
            <label>Telefone</label>
            <input type="text" class="form-control" name="telefone"  placeholder="Insira o telefone"/>
        </div>

        <button type="submit" class="btn btn-primary">Adicionar</button>
    </form>
</body>
</html>

Controller:

package br.com.alura.listavip.controller;

import br.com.alura.listavip.model.Convidado;
import br.com.alura.listavip.repository.ConvidadoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * Created by pedro-ramalho on 01/04/18.
 */
@Controller
public class ConvidadoController {


    @Autowired
    private ConvidadoRepository repository;



    @RequestMapping("/")
    public String index(){
     return "index";
    }

    @RequestMapping("/listavip")
    public String listaConvidados(Model model){

        Iterable<Convidado> convidados = repository.findAll();
        model.addAttribute("convidados",convidados);


        return "listaconvidados";
    }


    @RequestMapping("/adicionarConvidado")
    public String adicionarConvidado(){
        return "adicionar-convidados";
    }

        @RequestMapping(value = "salvar", method = RequestMethod.POST)
        public String salvar(@RequestParam("nome") String nome,@RequestParam("email") String email,@RequestParam("telefone") String telefone){


         Convidado  novoConvidado = new Convidado(nome,email,telefone);

         repository.save(novoConvidado);

            return "listaconvidados";
        }
}

Convidado:

package br.com.alura.listavip.model;

import javax.annotation.Generated;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * Created by pedro-ramalho on 03/04/18.
 */
@Entity(name="tb_convidado")
public class Convidado {

    @Id
    @GeneratedValue
    private Long id;

    private String nome;
    private String email;
    private String telefone;

public Convidado(){

}

public Convidado(String nome,String email,String telefone){

    super();
    this.nome = nome;
    this.email = email;
    this.telefone = telefone;

}



    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }


}
1 resposta

Pedro boa tarde,

substitua a anotação do idpor essa:

@GeneratedValue(strategy = GenerationType.IDENTITY)

avise se deu certo.

valeu!!