Problema com mapeamento de chave composta primaria

4 respostas
Matheus_Paiva

Caros amigos …
Tenho um problema com o mapeamento e o salvar de uma classe com chave primaria composta …
Minha classe tem os atributos da sua chave primaria composta na mesma classe diferente de exemplos que vi na internet que tal class é gerada por atributos em classes diferentes …

O erro é dado ao mandar gravar tais campos …
Quando mando gravar a transação não é ativa ( transaction not active)
Será que alguem pode me ajudar / ?
Desde já agradeço …

4 Respostas

drsmachado

Transaction not active significa que você, em algum momento, deu commit (se não me engano rollback também) e não recriou a Transaction (tx = session.beginTransaction()) e não tem nada a ver com as chaves duplamente encadeadas e compostas.

Matheus_Paiva

São dois problemas que estou tendo …
Debugando percebo que o cursor não executa o commit …

drsmachado

Deve ser a linha 302. Dá uma olhada nela.

Matheus_Paiva
public String cadastrar()
   {

  
PeritosDAO pDAO=new PeritosDAO();
        
       
        
  if (perito.getNomeMae().equals(""))
{
  perito.setNomeMae(null);
}
   try 
{

    pDAO.inserirEditar(perito);
   limpar();
   JSFUtil.setaMensagemInfo("Cadastro/Edição efetuado com sucesso!");
        
   pDAO.getConexao().close();
}
   catch (Exception e) {
   JSFUtil.setaMensagemError("Erro no cadastro: "+e.getMessage());
   pDAO.getConexao().getTransaction().rollback();
}
   if(perito.getNome().equals(null)){
   JSFUtil.setaMensagemError("Erro no cadastro");
   
   }
        return null;

}
public T inserirEditar(T vo) {

        EntityTransaction tx = getConexao().getTransaction();

        if (!tx.isActive()) {
            tx.begin();
        }

        vo = getConexao().merge(vo);



        if (tx.isActive()) {
            tx.commit();
        }

        return vo;

    }
O meu cadastrar e meu inserir e editar ....
Criado 27 de agosto de 2012
Ultima resposta 27 de ago. de 2012
Respostas 4
Participantes 2