Javafree
Página Inicial do Fórum > Frameworks, APIs e IDE's

Problema Básico JPA



Criar novo tópico   Responder tópico
  1. Comment Arrow

    Publicado em: 12/04/2015 20:28:30

    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:

    Pessoa.jpg
    /**
    *
    * @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 + " ]";
    }

    }





    Operador
    /**
    *
    * @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() + " ]";
    }

    }





    OperadorJpaController
    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();
    }
    }

    }




    Classe Chamadora
    public void executar() throws RollbackFailureException, Exception{
    Operador o = new Operador();
    o.setNome("Fulano";

    OperadorJpaController dao = new OperadorJpaController(utx, emf);
    dao.create(o);
    }



  1. Relacionados