JPA só salva o primeiro Registro

2 respostas
Marck

Olá,

Já procurei mas ainda não consegui resolver este problema. Tenho uma classe responsável pela manipulação dos dados. O problema e que quando insiro um segundo registro, não salva.
Já usei o debug e constatei que até o metodo persist(Object), o objeto esta chegando corretamente. Dái pra frente não sei mais o que pode ser.

public static boolean create(Object objPersistir){
           
        try {
            
            ManagerFactoryOrq.getEm().getTransaction().begin();
            ManagerFactoryOrq.getEm().persist(objPersistir);
            ManagerFactoryOrq.getEm().getTransaction().commit();
            
            return true;
        
        }catch(javax.persistence.EntityExistsException eee){
            
            eee.printStackTrace();
                        
            Mensagem.stop("O código que você está tentando salvar já existe!");
            return false;
        } 
        catch(javax.persistence.RollbackException rbE){
            
            rbE.printStackTrace();
            Mensagem.stop("Algum erro gerado ao tentar salvar este Registro!");
            
            return false;
            
        }
        catch (Exception e) {
            
            e.printStackTrace();
            ManagerFactoryOrq.getEm().getTransaction().rollback();
            Mensagem.erro("Algum erro gerado ao incluir Registro! Reinicie o Sistema e tente novamente!");
            return false;
        
        }
    }

ManagerFactoryOrq

public class ManagerFactoryOrq{
        
    private static EntityManagerFactory emf;
    private static EntityManager em;
        
    public ManagerFactoryOrq(String entityName) {
        
        emf = Persistence.createEntityManagerFactory( entityName );
        em = emf.createEntityManager();
        
               
    }

    
    public static EntityManagerFactory getEmf() {
        
        return emf;
    
    }

    
    public static EntityManager getEm() {
    
        return em;
    }
}

O problema pode ser o fato de as variáveis serem static?
Agradeço a ajuda!

2 Respostas

71C4700

Poderia postar tambem o persistece.xml.
Da uma olhada na propriedade de criação
“create”, “create-drop” e “update”.
Particulamente uso o update.
Vlw

Marck

Opá!

Ta ai! :smiley:

<?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="KSBordadosPU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>persistencia.RegistroHorario</class>
    <class>persistencia.FuncionarioHorario</class>
    <class>persistencia.Funcao</class>
    <class>persistencia.Cidade</class>
    <class>persistencia.Funcionario</class>
    <properties>
      <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/ks"/>
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="toplink.jdbc.password" value="root"/>
    </properties>
  </persistence-unit>
</persistence>

Estratégia de criação está como “Nenhum”!

Valeu!

Criado 18 de julho de 2008
Ultima resposta 18 de jul. de 2008
Respostas 2
Participantes 2