Javafree
 Forum   Topics   Author   Post 
Frameworks, APIs e IDE's Problema Básico JPA ronaldoafcrc Olá pessoal, estou tentando usar o JPA, tento fazer uma persistência, não gera erro mas também não persiste nada na base de dados. Segue os códigos: [b]Pessoa.jpg[/b] /** * * @author ronaldomartins */ @Entity @Inheritance(strategy = InheritanceType.JOINED) @Table(name = "Pessoa") @DiscriminatorColumn(name = "tipoclasse") @NamedQueries({ @NamedQuery(name = "Pessoa.findAll", query = "SELECT p FROM Pessoa p")}) public class Pessoa implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer codpessoa; @Size(max = 100) private String nome; public Pessoa() { } public Pessoa(Integer codpessoa) { this.codpessoa = codpessoa; } public Integer getCodpessoa() { return codpessoa; } public void setCodpessoa(Integer codpessoa) { this.codpessoa = codpessoa; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } @Override public int hashCode() { int hash = 0; hash += (codpessoa != null ? codpessoa.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Pessoa)) { return false; } Pessoa other = (Pessoa) object; if ((this.codpessoa == null && other.codpessoa != null) || (this.codpessoa != null && !this.codpessoa.equals(other.codpessoa))) { return false; } return true; } @Override public String toString() { return "model.Pessoa[ codpessoa=" + codpessoa + " ]"; } } [b]Operador[/b] /** * * @author ronaldomartins */ @Entity @DiscriminatorValue("OPERADOR") @NamedQueries({ @NamedQuery(name = "Operador.findAll", query = "SELECT o FROM Operador o")}) public class Operador extends Pessoa implements Serializable { private static final long serialVersionUID = 1L; public Operador() { } @Override public int hashCode() { int hash = 0; hash += (getCodpessoa() != null ? getCodpessoa().hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Operador)) { return false; } Operador other = (Operador) object; if ((getCodpessoa() == null && other.getCodpessoa() != null) || (getCodpessoa() != null && !getCodpessoa().equals(other.getCodpessoa()))) { return false; } return true; } @Override public String toString() { return "model.Operador[ codpessoa=" + getCodpessoa() + " ]"; } } [b]OperadorJpaController[/b] public class OperadorJpaController implements Serializable { public OperadorJpaController(UserTransaction utx, EntityManagerFactory emf) { this.utx = utx; this.emf = emf; } private UserTransaction utx = null; private EntityManagerFactory emf = null; public EntityManager getEntityManager() { return emf.createEntityManager(); } public void create(Operador operador) throws PreexistingEntityException, RollbackFailureException, Exception { EntityManager em = null; try { utx.begin(); em = getEntityManager(); em.persist(operador); utx.commit(); } catch (Exception ex) { try { utx.rollback(); } catch (Exception re) { throw new RollbackFailureException("An error occurred attempting to roll back the transaction.", re); } if (findOperador(operador.getCodpessoa()) != null) { throw new PreexistingEntityException("Operador " + operador + " already exists.", ex); } throw ex; } finally { if (em != null) { em.close(); } } } public void edit(Operador operador) throws NonexistentEntityException, RollbackFailureException, Exception { EntityManager em = null; try { utx.begin(); em = getEntityManager(); operador = em.merge(operador); utx.commit(); } catch (Exception ex) { try { utx.rollback(); } catch (Exception re) { throw new RollbackFailureException("An error occurred attempting to roll back the transaction.", re); } String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = operador.getCodpessoa(); if (findOperador(id) == null) { throw new NonexistentEntityException("The operador with id " + id + " no longer exists."); } } throw ex; } finally { if (em != null) { em.close(); } } } public void destroy(Integer id) throws NonexistentEntityException, RollbackFailureException, Exception { EntityManager em = null; try { utx.begin(); em = getEntityManager(); Operador operador; try { operador = em.getReference(Operador.class, id); operador.getCodpessoa(); } catch (EntityNotFoundException enfe) { throw new NonexistentEntityException("The operador with id " + id + " no longer exists.", enfe); } em.remove(operador); utx.commit(); } catch (Exception ex) { try { utx.rollback(); } catch (Exception re) { throw new RollbackFailureException("An error occurred attempting to roll back the transaction.", re); } throw ex; } finally { if (em != null) { em.close(); } } } public List<Operador> findOperadorEntities() { return findOperadorEntities(true, -1, -1); } public List<Operador> findOperadorEntities(int maxResults, int firstResult) { return findOperadorEntities(false, maxResults, firstResult); } private List<Operador> findOperadorEntities(boolean all, int maxResults, int firstResult) { EntityManager em = getEntityManager(); try { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); cq.select(cq.from(Operador.class)); Query q = em.createQuery(cq); if (!all) { q.setMaxResults(maxResults); q.setFirstResult(firstResult); } return q.getResultList(); } finally { em.close(); } } public Operador findOperador(Integer id) { EntityManager em = getEntityManager(); try { return em.find(Operador.class, id); } finally { em.close(); } } public int getOperadorCount() { EntityManager em = getEntityManager(); try { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); Root<Operador> rt = cq.from(Operador.class); cq.select(em.getCriteriaBuilder().count(rt)); Query q = em.createQuery(cq); return ((Long) q.getSingleResult()).intValue(); } finally { em.close(); } } } [b]Classe Chamadora[/b] public void executar() throws RollbackFailureException, Exception{ Operador o = new Operador(); o.setNome("Fulano"); OperadorJpaController dao = new OperadorJpaController(utx, emf); dao.create(o); }[/b]
Goto page 1