Estou com uma aplicação que não persiste os dados no Banco de Dados Postgres 8.2.
To utilizando JPA(eclipseLink).
Não é disparada nenhuma exceção, mas o objeto não é persistido no banco de dados. A aplicação consegue realizar consultas sem problemas, mas não consegue persistir objetos.
Segue os fontes:
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
<persistence-unit name="WebApplication2PU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jndiPostgres</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables"/>
<property name="eclipselink.logging.level" value="FINE"/>
</properties>
</persistence-unit>
</persistence>
JMSTeste.java
@Named(value="JMSEnvio")
@Dependent
public class JMSEnvio {
public void TestarPersistencia() {
List<Cadastro> cads = new CadastroDAOJPA2().recuperarTodos();
System.out.println("Qtde de registros recuperados: " + cads.size());
Cadastro novo = new Cadastro();
novo.setIdCadastroGeral(555);
novo.setIdCadastroLocal(1111111);
novo.setNome("FUNCIONARIO");
novo.setRg("99999");
new CadastroDAOJPA2().insereRegistro(novo);
List<Cadastro> cads2 = new CadastroDAOJPA2().recuperarTodos();
System.out.println("Qtde de registros recuperados 2: " + cads2.size());
}
}
CadastroDAOJPA2.java
public class CadastroDAOJPA2 extends DAOBaseJPA2<Cadastro> implements CadastroDAO {
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
if (em == null) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("WebApplication2PU");
em = emf.createEntityManager();
}
return em;
}
@Override
protected Class<Cadastro> getClasseDominio() {
return Cadastro.class;
}
public void insereRegistro(Cadastro reg) {
getEntityManager().persist(reg);
System.out.println("INSERIU");
}
DAOBaseJPA2
public abstract class DAOBaseJPA2<T extends ObjetoPersistente> implements DAOBase<T>, Serializable {
protected abstract EntityManager getEntityManager();
protected abstract Class<T> getClasseDominio();
public List<T> recuperarTodos() {
EntityManager em = getEntityManager();
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(getClasseDominio()));
return em.createQuery(cq).getResultList();
}
}
Agradeço muito a quem puder me dar essa ajuda.
Obrigado.