Problema com JPA/Hibernate. Erro The application must supply JDBC connections

Alguém pode me ajudar a solucionar este problema que estou tendo ao tentar persistir uma entidade no banco de dados usando Hibernate e JPA.

Segue meus arquivos com os códigos.

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 
		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"
        >
    
	
	<persistence-unit name="cadastros" transaction-type = "RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		
		<class>br.com.jpa.modelo.Cliente</class>
		
		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
			<property name="javax.persistence.jdbc.ulr" value="jdbc:mysql://localhost/financas" />
			<property name="javax.persistence.jdbc.user" value="root" />
			<property name="javax.persistence.jdbc.password" value="" />
			
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />			
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />			
		</properties>
	</persistence-unit>
</persistence>

Cliente.java

package br.com.jpa.modelo;

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

@Entity

public class Cliente {
	@Id@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	private String nome;
	private String email;
	private String endereco;
	private String 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 getEndereco() {
		return endereco;
	}
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
		
}

JPAUtil.java

package br.com.jpa.util;

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

public class JPAUtil {
	private static EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cadastros");
	
	public EntityManager getEntityManager(){
		return entityManagerFactory.createEntityManager();
	}
}

TesteJPA.java

package br.com.jpa.teste;

import javax.persistence.EntityManager;

import br.com.jpa.modelo.Cliente;
import br.com.jpa.util.JPAUtil;

public class TesteJPA {
	public static void main(String[] args) {
		Cliente cliente = new Cliente();
		cliente.setNome("Joao da Silva");
		cliente.setEmail("joao@gmail.com");
		cliente.setEndereco("Rua abc nº 442");
		cliente.setTelefone("(43)3322-4411");
		
		EntityManager manager = new JPAUtil().getEntityManager();
		
		manager.getTransaction().begin();
		manager.persist(cliente);
		manager.getTransaction().commit();
		
		manager.close();
	}
}

Erro

[code]ERROR: HHH000299: Could not complete schema update
java.lang.UnsupportedOperationException: The application must supply JDBC connections
at org.hibernate.engine.jdbc.connections.internal.UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:61)
at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:194)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:522)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at br.com.jpa.util.JPAUtil.(JPAUtil.java:8)
at br.com.jpa.teste.TesteJPA.main(TesteJPA.java:16)

Exception in thread “main” java.lang.UnsupportedOperationException: The application must supply JDBC connections
at org.hibernate.engine.jdbc.connections.internal.UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:61)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:171)
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:162)
at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1435)
at org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:61)
at br.com.jpa.teste.TesteJPA.main(TesteJPA.java:18)[/code]

Oi!

Pela mensagem de erro tem algo a ver com a conexão com o banco. O banco está rodando? Nesse endereço que você colocou no persistence.xml, “localhost”. Por acaso tem alguma outra mensagem de erro no stacktrace que você não colocou aqui?

Olá Rodrigo,

O banco está rodando em localhost, inclusive criei uma aplicação usando simplesmente JDBC para testar e funcionou, usando o mesmo Driver.

Será que pode ser algo relacionado as dependências?
Copie todos os jars da pasta required, e o jar da pasta JPA do Hibernate, além do driver do MySQL para o classpath do projeto.

Baixei a última versão do Hibernate 4.3.6.

O correto seria:

Opa,

valeu pela ajuda! Problema corrigido.

obrigado