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>