Erro ao tentar executar o codigo da revista java magazine ed

18/06/2007

1

Boa noite pessoal, sou assinante da revista java magazine.
Não estou conseguindo executar o codigo vindo como exemplo, e tambem para download.
Abaixo o codigo que criei com base na materia da java magazine.

package jm.matriculas.model;

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

@Entity
@Table(name = "aluno")
public class Aluno {


@Id
private String cpf;

@Column
private String email;

@Column
private String telefone;

@Column
private String nome;


public void setCpf(String cpf) {
this.cpf = cpf; 
}

public void setEmail(String email) {
this.email = email; 
}

public void setTelefone(String telefone) {
this.telefone = telefone; 
}

public void setNome(String nome) {
this.nome = nome; 
}

public String getCpf() {
return (this.cpf); 
}

public String getEmail() {
return (this.email); 
}

public String getTelefone() {
return (this.telefone); 
}

public String getNome() {
return (this.nome); 
}



package jm.matriculas.business;

import javax.persistence.*;
import jm.matriculas.model.Aluno;

public class GerenciadorAlunos {

private EntityManager entityManager = null;

public void setEntityManager(EntityManager em) {
this.entityManager = em;
}

public void salvar(Aluno aluno){

EntityManagerFactory emf = Persistence.createEntityManagerFactory("exemploJPA");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();

entityManager.persist(aluno);

em.getTransaction().commit();

em.close();
emf.close();

}

  /*public void excluir(Aluno aluno) throws ControleMatriculaException {
    aluno = entityManager.merge(aluno);
    entityManager.remove(aluno);
  }

  public Aluno getById(Integer id) throws ControleMatriculaException {
    return entityManager.find(Aluno.class, id);
  }

  public Aluno getByCpf(String cpf) throws ControleMatriculaException {
    Query query = entityManager.createNamedQuery("alunoByCpf");
    query.setParameter("cpf", cpf);
    return (Aluno) query.getSingleResult();
  }

  public List<Aluno> getByNome(String nome) throws ControleMatriculaException {
    Query query = entityManager.createNamedQuery("alunoByNome");
    query.setParameter("nome", nome);
    return (List<Aluno>) query.getResultList();


}





package jm.matriculas.testes.parte1;
import javax.persistence.*;
import jm.matriculas.model.Aluno;

public class TestePersistenciaAluno {

jm.matriculas.business.GerenciadorAlunos ga = new 
jm.matriculas.business.GerenciadorAlunos();

  public void teste() {

    Aluno a1 = new Aluno();
    a1.setNome("Joo da Silva");
    a1.setCpf("14151677899");
    a1.setEmail("joao.silva@umemail.com.br");
    a1.setTelefone("8765-5678");

    ga.salvar(a1); 
  }

}




<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
  
  <persistence-unit name="exemploJPA" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
    <class>jm.matriculas.model.Aluno</class>
    <properties>
      <property name="toplink.logging.level" value="INFO"/>

      <property name="toplink.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="toplink.jdbc.user" value="postgres"/>
      <property name="toplink.jdbc.password" value=""/>
      <property name="toplink.ddl-generation" value="create-tables"/> 
    </properties>
  </persistence-unit>
  
</persistence>



Faço a chama de um servlet sem segredo.
O caso é, a tabela ate esta sendo crida no banco de dados mas nao insere nenhum registro veja o erro.

java.lang.NullPointerException
jm.matriculas.business.GerenciadorAlunos.salvar(GerenciadorAlunos.java:20)
jm.matriculas.testes.parte1.TestePersistenciaAluno.teste(TestePersistenciaAluno.java:18)
servlets.ServTeste.doGet(ServTeste.java:38)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)




Se alguem poder me ajudar.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira