Tentei executar o popula banco da aula 3, mas sem sucesso ele me retorna esse erro:
ERROR: Table 'livrariadb.autor' doesn't exist
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: Table 'livrariadb.autor' doesn't exist
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1377)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1300)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1306)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:871)
at br.com.caelum.livraria.dao.PopulaBanco.main(PopulaBanco.java:22)
Caused by: org.hibernate.exception.SQLGrammarException: Table 'livrariadb.autor' doesn't exist
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
at
Meus arquivos:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
package br.com.caelum.livraria.dao;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.persistence.EntityManager;
import br.com.caelum.livraria.modelo.Autor;
import br.com.caelum.livraria.modelo.Livro;
public class PopulaBanco {
public static void main(String[] args) {
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
Autor assis = geraAutor("Machado de Assis");
em.persist(assis);
Autor amado = geraAutor("Jorge Amado");
em.persist(amado);
Autor coelho = geraAutor("Paulo Coelho");
em.persist(coelho);
Livro casmurro = geraLivro("978-8-52-504464-8", "Dom Casmurro",
"10/01/1899", 24.90, assis);
Livro memorias = geraLivro("978-8-50-815415-9",
"Memorias Postumas de Bras Cubas", "01/01/1881", 19.90, assis);
Livro quincas = geraLivro("978-8-50-804084-1", "Quincas Borba",
"01/01/1891", 16.90, assis);
em.persist(casmurro);
em.persist(memorias);
em.persist(quincas);
Livro alquemista = geraLivro("978-8-57-542758-3", "O Alquimista",
"01/01/1988", 19.90, coelho);
Livro brida = geraLivro("978-8-50-567258-7", "Brida", "01/01/1990",
12.90, coelho);
Livro valkirias = geraLivro("978-8-52-812458-8", "As Valkirias",
"01/01/1992", 29.90, coelho);
Livro maao = geraLivro("978-8-51-892238-9", "O Diario de um Mago",
"01/01/1987", 9.90, coelho);
em.persist(alquemista);
em.persist(brida);
em.persist(valkirias);
em.persist(maao);
Livro capitaes = geraLivro("978-8-50-831169-1", "Capitaes da Areia",
"01/01/1937", 6.90, amado);
Livro flor = geraLivro("978-8-53-592569-9",
"Dona Flor e Seus Dois Maridos", "01/01/1966", 18.90, amado);
em.persist(capitaes);
em.persist(flor);
em.getTransaction().commit();
em.close();
}
private static Autor geraAutor(String nome) {
Autor autor = new Autor();
autor.setNome(nome);
return autor;
}
private static Livro geraLivro(String isbn, String titulo, String data,
double preco, Autor autor) {
Livro livro = new Livro();
livro.setIsbn(isbn);
livro.setTitulo(titulo);
livro.setDataLancamento(data);
livro.setPreco(preco);
livro.adicionaAutor(autor);
return livro;
}
@SuppressWarnings("unused")
private static Calendar parseData(String data) {
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(data);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
}
package br.com.caelum.livraria.modelo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Autor {
@Id
@GeneratedValue
private Integer id;
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
Tem alguma coisa de errado na classe PopulaBanco ?