Gerar Tabelas com Hibernate

Galera, estou tentando gerar uma tabela usando JPA com Hibernate, porém está sendo retornado uma exceção.

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named tarefas
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at br.com.caelum.tarefas.jpa.GeraTabelas.main(GeraTabelas.java:11)

Alguém pode me ajudar?

@Luccas_Oliveira poderia enviar o mapeamento das suas classes ?

No caso envie o código da classe tarefas e demais classes modelos.
Também senti falta do .JAR referente ao JDBC do PostgreeSQL

O seu persistence.xml parece estar OK.

Fico no aguardo por mais detalhes.

package br.com.caelum.tarefas.model;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name = "tarefa")
public class Tarefa {

    @Id
    @GeneratedValue
    private Long id;

    @NotNull
    @Size(min = 5, message = "Campo obrigatório! Informe no minimo 5 caracteres!")
    private String descricao;

    private boolean finalizado;

    /**
     * Para o Spring MVC saber converter automaticamente a data no formato
     * brasileiro para um Calendar é preciso usar a anotação @DateTimeFormat.
     */

    @DateTimeFormat(pattern = "dd/MM/yyyy")
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "data_finalizacao")
    private Calendar dataFinalizacao;

    public Tarefa() {

    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public boolean isFinalizado() {
        return finalizado;
    }

    public void setFinalizado(boolean finalizado) {
        this.finalizado = finalizado;
    }

    public Calendar getDataFinalizacao() {
        return dataFinalizacao;
    }

    public void setDataFinalizacao(Calendar dataFinalizacao) {
        this.dataFinalizacao = dataFinalizacao;
    }

}


package br.com.caelum.tarefas.jpa;

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

public class GeraTabelas {

    public static void main(String[] args) {

        EntityManagerFactory factory = Persistence.createEntityManagerFactory("tarefas");

        factory.close();
    }

}

@Matt_Philipe Estou postando o model Tarefa (por enquento é o model que estou usando) para ver se você consegue me dar uma explicação exata, por favor, pois baixei a ultima versão dos *.jar’s do Hibernate mas não funcionou, porém seguindo um post aqui do GUJ (SOLUÇÃO- Erro: No Persistence provider for EntityManager named) acabou funcionando quando troquei as bibliotecas (jar’s) para essa versão mais antiga (hibernate-release-4.3.5.Final.zip).

Obs.: No primeiro print realmente não consta o jar do postgresql, mas me atentei a essa questão e já havia adicionado.

@Luccas_Oliveira segue alterações que fiz aqui, e funcionou perfeitamente.
Única diferença é que estou usando MySQL (acredito que para este cenário não faz diferença alguma).

O que faltou foi criar um EntityManager para poder fazer a transação com seu banco de dados.
Fiz algumas alterações nos mapeamentos da sua classe Tarefa pois você estava usando anotações do SPRING MVC mas a sua pergunta é sobre o Hibernate, então usei exclusivamente annotations do framework em questão :

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

public class GeraTabelas {



public static void main(String[] args) {
		
	EntityManagerFactory factory = Persistence.createEntityManagerFactory("tarefas");
	EntityManager eManager = factory.createEntityManager();
	eManager.getTransaction().begin();		
    eManager.close();
    

	
}

}

Classe Tarefa :

import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
@Table(name = "tarefa")
public class Tarefa {

@Id
@GeneratedValue
private Long id;

@Column(nullable = false, length = 5)    
private String descricao;

@Column
private boolean finalizado;

/**
 * Para o Spring MVC saber converter automaticamente a data no formato
 * brasileiro para um Calendar é preciso usar a anotação @DateTimeFormat.
 */

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "data_finalizacao")
private Calendar dataFinalizacao;

public Tarefa() {

}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public boolean isFinalizado() {
    return finalizado;
}

public void setFinalizado(boolean finalizado) {
    this.finalizado = finalizado;
}

public Calendar getDataFinalizacao() {
    return dataFinalizacao;
}

public void setDataFinalizacao(Calendar dataFinalizacao) {
    this.dataFinalizacao = dataFinalizacao;
}

}`

Tabela criada no banco :

Saudações !

@Matt_Philipe obrigado pelo retorno!
Irei testar e posteriormente posto aqui o resultado.

@Luccas_Oliveira deu certo ?