Duvida em código java JPA

Seguinte Error:

log4j:WARN No appenders could be found for logger (org.hibernate.type.BasicTypeRegistry).
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” java.lang.NullPointerException
at controle.Programa.testarLeitura(Programa.java:36)
at controle.Programa.main(Programa.java:12)


O objetivo do programa é gravar os dados do controle no Banco e os dados chamado entretenimento pgAdmin.

package controle;

import modelo.dao.ConteudoDAO;
import modelo.dominio.Conteudo;

public class Programa {

	public static void main(String[] args) {

		testarGravacao();
		
		testarLeitura();
	}

	
	public static void testarGravacao()
	{
Conteudo c1 = new Conteudo("Os cem","seriado","acao","grupo enviado a terra","+16",10);
Conteudo c2 = new Conteudo("the walking dead","seriado","acao","apocalipse zombie","+16",11);
Conteudo c3 = new Conteudo("invocação do mal 2","longa","terror","o mal retona aos warren","+18",12);
		
		// GRAVAR OS OBJETOS NO BANCO DE DADOS
		ConteudoDAO dao = new ConteudoDAO();
		dao.incluir(c1);
		dao.incluir(c2);
		dao.incluir(c3);
		// FECHA A CONEXÃO
		dao.fecharConexao();
	}
	
	public static void testarLeitura()
	{
		ConteudoDAO dao = new ConteudoDAO();
		Conteudo c1 = dao.obter(1);

	System.out.println("Conteudo:"+c1.getTitulo()+"-"+c1.getTipo()+"-"+c1.getGenero());
	}
	
}

package modelo.dao;

import java.util.ArrayList;
import java.util.List;

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

import modelo.dominio.Conteudo;


public class ConteudoDAO {

	private EntityManager manager = null;

	public ConteudoDAO() {
		super();

		// CRIAR UM FACTORY COM AS CONFIGURAÇÕES DO BANCO
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("banco");

		// CRIAR O ENTITY MANAGER PARA PERSISTIR OS OBJETOS
		this.manager = factory.createEntityManager();
	}
	
	public void incluir(Conteudo conteudo) {
		// ABRIR TRANSAÇÃO
		this.manager.getTransaction().begin();
		// INCLUIR CONTEUDO
		this.manager.persist(conteudo);
		// FECHAR TRANSAÇÃO
		this.manager.getTransaction().commit();
	}

	public void fecharConexao() {
		// FECHAR O ENTITY MANAGER
		this.manager.close();
	}

	public void alterar(Conteudo conteudo) {
		// ABRIR TRANSAÇÃO
		this.manager.getTransaction().begin();
		// INCLUIR CONTUDO
		this.manager.merge(conteudo);
		// FECHAR TRANSAÇÃO
		this.manager.getTransaction().commit();
	}

	public void remover(Conteudo conteudo) {
		// ABRIR TRANSAÇÃO
		this.manager.getTransaction().begin();
		// INCLUIR CONTEUDO
		this.manager.remove(conteudo);
		// FECHAR TRANSAÇÃO
		this.manager.getTransaction().commit();
	}

	public Conteudo obter(Integer codigo) {
		// CARREGAR O PRODUTO PELA CHAVE PRIMÁRIA
		Conteudo retorno = this.manager.find(Conteudo.class,codigo);
		return retorno;
	}

	public List<Conteudo> obterTodos() {
		List<Conteudo> retorno = new ArrayList<Conteudo>();
		return retorno;
	}

}

package modelo.dominio;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity  
public class Conteudo{

	private String titulo,tipo,genero,sinopse,classificacaoinficativa;
	@Id
	private int codigo;
	

	public Conteudo(String titulo,String tipo,String genero,String sinopse,String classificacaoindicativa, int codigo) {
		this.titulo=titulo;
		this.tipo=tipo;
		this.genero=genero;
        this.sinopse=sinopse;
        this.classificacaoinficativa=classificacaoindicativa;
        this.codigo=codigo;
	}


	public String getTitulo() {
		return titulo;
	}


	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}


	public String getTipo() {
		return tipo;
	}


	public void setTipo(String tipo) {
		this.tipo = tipo;
	}


	public String getGenero() {
		return genero;
	}


	public void setGenero(String genero) {
		this.genero = genero;
	}


	public String getSinopse() {
		return sinopse;
	}


	public void setSinopse(String sinopse) {
		this.sinopse = sinopse;
	}


	public String getClassificacaoinficativa() {
		return classificacaoinficativa;
	}


	public void setClassificacaoinficativa(String classificacaoinficativa) {
		this.classificacaoinficativa = classificacaoinficativa;
	}


	public int getCodigo() {
		return codigo;
	}


	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	

	
}

<?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_1_0.xsd"
	version="1.0">
	<persistence-unit name="banco" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
			<property name="hibernate.connection.url"
				value="jdbc:postgresql://127.0.0.1:5432/entretenimento?charSet=UTF8" />
			<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
			<property name="hibernate.connection.username" value="postgres" />
			<property name="hibernate.connection.password" value="postgres" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
		</properties>
	</persistence-unit>
</persistence>

Ola @Iago_Fonseca,

de um select na base de dados procurando pelo id 1 do conteúdo( dao.obter(1); ), bem provável que não vai encontrar porque nenhum os objetos adicionados neste seu teste tem o código Id=1, você tem Id=10, 11 ou 12, veja:

Conteudo c1 = new Conteudo("Os cem","seriado","acao","grupo enviado a terra","+16",10);
Conteudo c2 = new Conteudo("the walking dead","seriado","acao","apocalipse zombie","+16",11);
Conteudo c3 = new Conteudo("invocação do mal 2","longa","terror","o mal retona aos warren","+18",12);

então você tem umNullPointerException quando da get no conteúdo, ex:

System.out.println("Conteudo:"+c1.getTitulo()+"-"+c1.getTipo()+"-"+c1.getGenero());

Para funcionar altere a busca por alguns dos Id’s mencionados acima, abração, ex:

Conteudo c1 = dao.obter(10);