Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao persistir objeto produto utilizando Spring MVC.

Log:

Hibernate: insert into Produto (descricao, paginas, titulo) values (?, ?, ?)
jul 28, 2017 1:39:01 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [dispatcher] in context with path 
[/casadocodigo] threw exception [Request processing failed; nested exception is javax.persistence.PersistenceException: 
org.hibernate.exception.SQLGrammarException: could not execute statement] with root cause
org.postgresql.util.PSQLException: ERROR: relation "produto" does not exist

[...]

ProdutosController :

@Controller
public class ProdutosController {

    @Autowired
    private ProdutoDAO produtoDAO; 

    @RequestMapping("/produtos-cadastrar")
    public String gravar(Produto produto) {
    //os dados chegam!
        System.out.println("entrou no String gravar: "+produto.getTitulo());
    //erro retporna aqui!
        this.produtoDAO.gravar(produto);
        return "produtos/ok";
    }
}

ProdutoDAO :

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import br.com.casadocodigo.loja.models.Produto;

@Repository
@Transactional
public class ProdutoDAO {
    @PersistenceContext
    private EntityManager manager;

    public void gravar(Produto produto) {
    //Erro retorna deste ponto!
        this.manager.persist(produto);

    }
}

Produto:

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

@Entity
public class Produto {

    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    private String titulo;
    private String descricao;
    private int paginas;

// [...]
}
2 respostas
solução!

Olá,

A tabela existe? Dê uma olhada em:

https://cursos.alura.com.br/forum/topico-hibernate-nao-cria-a-tabela-usando-postgres-37857

Té mais,

Agradeço muitíssimo brother.

Graças a tópico do link que vc me enviou, pude fazer uma comparação com o meu código.

código do tópico:

props.setProperty("hibernate.hbm2ddl.auto", "update");

meu código:

jpaProperties.setProperty("hibernate.hbm2dll.auto", "update");

erro de digitação: certo "hbm2ddl", errado "hbm2dll"

Com isso ele não estava sequer criando as tabelas!

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