Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Problema com JPA - EntityManager

$
0
0

@Gabriel_Leoncini92 escreveu:

Olá Pessoal tudo bem? Bom estou com um problema com o meu JPA aparentemente qualquer tentativa de salvar um objeto ele não funciona basicamente java.lang.NullPointerException


MEU DAO GENERICO:

public class GenericoDAO<T extends Entidade> {
@PersistenceUnit(unitName="MeusistemaPU")
   EntityManagerFactory factory;

public EntityManager getEM() throws InstantiationException, IllegalAccessException{
    return factory.createEntityManager();
}

public T salvar (T t) throws Exception{
    EntityManager em = getEM();
    
    
    try{
        em.getTransaction().begin();
      
        if(t.getId() == null){
        
            em.persist(t);
        }else{
            if(!em.contains(t)){           	
                if(em.find(t.getClass(),t.getId()) == null){
                    throw new Exception("Erro ao atualizar");
                }
            }
            t = em.merge(t);
        }
        em.getTransaction().commit();
    }finally{
        em.close();
    }
    return t;
}

}


Minha Interface Entidade:

public interface Entidade {

   public Integer getId();

}

Minha Classe de Teste

    public class AnimalTeste {

      public static void main(String[] args) throws Exception {
	Animal gato = new Animal();

    GenericoDAO gn = new GenericoDAO();
    
    gato.setDataNascimento("12-02-2013");
    gato.setNomeAnimal("Felix");
    gato.setPelagem("Preta");
    gato.setPeso(4.35);

    System.out.println(gato.toString());
    //Neste momento no gn.salvar ele nem entra e já lança a Exception 
    gn.salvar(gato);

}

}


Meu Persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
 <persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="MeusistemaPU" transaction-type="RESOURCE_LOCAL">
	<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
	
	<class>com.entidade.Animal</class>
	
	<properties>
		<property name="eclipselink.jdbc.batch-writing" value="JDBC" />

		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/animais" />
		<property name="javax.persistence.jdbc.user" value="root" />
		<property name="javax.persistence.jdbc.password" value="1234" />
		<property name="eclipselink.target-database" value="MySQL"/>
	</properties>
</persistence-unit>
</persistence>

Aqui o Erro que da

 Exception in thread "main" java.lang.NullPointerException
at com.DAO.GenericoDAO.getEM(GenericoDAO.java:16)
at com.DAO.GenericoDAO.salvar(GenericoDAO.java:20)
at com.teste.AnimalTeste.main(AnimalTeste.java:28)

Mensagens: 7

Participantes: 4

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>