4
respostas

Problemas com o metodo save

Boa tarde, estou com problemas com o metodo save do repository, quando ele vem todos os dados, quando ele vai executar o salvar, ele me retorna uma Exception dizendo o seguinte erro: "Table 'listavip.hibernate_sequence' doesn't exist" , pelo o que eu entendi não existe a tabela, mas em que lugar eu seto qual tabela ele deve salvar? Na minha model já está setada, segue o código:

Metodo Controller

    @RequestMapping(value= "salvar", method = RequestMethod.POST)
    public String salvar(Convidado convidado, Model model){

        String nome = convidado.getNome();
        String telefone = convidado.getTelefone();
        String email = convidado.getEmail();

        convidado.setNome(nome);
        convidado.setTelefone(telefone);
        convidado.setEmail(email);

        repository.save(convidado);

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


        return "listaconvidados";

    }

Model

package br.com.alura.listavip.model;

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

@Entity(name="convidado")
public class Convidado {

    @Id
    @GeneratedValue
    private Integer id;
    private String nome;
    private String email;
    private String telefone;

    public Convidado(){

    }

    public Integer getId() {
        return id;
    }
    public void setId(int 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;
    }
}
4 respostas

Acho que teve um problema na hora da criação das tabelas do seu banco de dados. Ele espera por uma tabela que o hibernate cria para gerenciar as coisas e ela não está lá. Minha sugestão é dropar o banco, criar de novo e aí você executa o programa mais uma vez. Acho que assim ele vai criar tudo certo.

Neste curso ele ja tem a tabela e só popula os dados, ele não cria a tabela pelo Hibernate

Oi Maria, mas parece que no seu ambiente não existe a tabela que o hibernate espera :(.

Eu tive esse problema, talvez pela base de dados ter sido criado e carregado através de um script, não criou a sequence corretamente. Para resolver este problema eu executei os comandos no sql:

CREATE TABLE hibernate_sequence (next_val INT NOT NULL);

insert into hibernate_sequence(next_val) select max(id)+1 from convidado;

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software