Problemas com JPA Hibernate

Bom dia, estou fazendo um cruso na alura o ‘Java e JSF: Sua aplicação web com JSF2’, entretanto estou enfrentando problemas com a aula 03. Nessa aula é disponibilizado um projeto pronto, com JSF e JPA Hibernate, sigo os passos exatamente como descritos no vídeo, mas estou com problemas ao executar a classe chamada PopulaBanco.java, ela cria alguns registros no MySQL, quando tento executa-la recebo várias exceptions, mas a primeira que ocorre é javax.persistence.PersistenceException. Vou postar abaixo a classe PopulaBanco.java e o persistence.xml, fiquei pesquisando aqui, mas não encontrei solução, o banco já está criado, o usuário root e senha estão corretos, a porta também está correta.

<?xml version="1.0" encoding="UTF-8"?>
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">

<persistence-unit name="livraria" transaction-type="RESOURCE_LOCAL">

	<provider>org.hibernate.ejb.HibernatePersistence</provider>
	
	<class>br.com.caelum.livraria.modelo.Livro</class>
	<class>br.com.caelum.livraria.modelo.Autor</class>

	<properties>
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/livrariadb" />																
		<property name="javax.persistence.jdbc.user" value="root" />
		<property name="javax.persistence.jdbc.password" value="senha123" />

		<property name="hibernate.hbm2ddl.auto" value="update" />
		<property name="hibernate.show_sql" value="true" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
	</properties>
</persistence-unit>

              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.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {

private static EntityManagerFactory emf = Persistence
		.createEntityManagerFactory("livraria");

public EntityManager getEntityManager() {
	return emf.createEntityManager();
}

public void close(EntityManager em) {
	em.close();
}

}

Resolvido, adicionei o javaee-api-7.0.jar no classpath e foi.