Jpa - Persistir objeto com relacionamento ManyToMany

Ola pessoal,

Estou desenvolvendo um modulo de controle de acesso pra um programa utilizando JPA com top Link e estou tendo problema em persistir num relacionamento muito para muitos.

Tenho uma tabela de perfil, uma de transações e uma perfil_transacoes.

O mapeamento da classe Perfil esta da seguinte forma:

[code]@Id
@Column(name = “PERFIL”, nullable = false)
private BigDecimal perfil;

@Column(name = "NOMEPERFIL")
private String nomeperfil;

@Column(name = "STATUS")
private String status;

@JoinTable(name = "PERFIL_TRANSACAO", joinColumns =  {
        @JoinColumn(name = "PERFIL", referencedColumnName = "PERFIL")
    }, inverseJoinColumns =  {
        @JoinColumn(name = "TRANSACAO", referencedColumnName = "TRANSACAO")
    })
@ManyToMany(cascade=CascadeType.PERSIST)
private Collection<Transacao> transacaoCollection;

[/code]

e estou usando o segiunte codigo para persistir:

[code]
public Erro inserir(Object obj) {
Perfil per = (Perfil)obj;
t.begin();
try{
manager.persist(per);
t.commit();
er.setCodigoErro(0);
er.setMsgErro(“Perfil cadastrada com sucesso!”);
}catch (RuntimeException e){
t.rollback();
er.setCodigoErro(1);
er.setMsgErro(“Ocorreu um erro ->”+e.toString());
return er;
}
return er;
}

public static void main(String[] args){

    Perfil perfil = new Perfil();
    perfil.setNomeperfil("Administrador");
    perfil.setStatus("Ativo");
    
    ArrayList<Transacao> lista = new ArrayList<Transacao>();        
    
    Transacao transacao = new Transacao();
    
    transacao.setNomepagina("cadastrarfuncionario.jsp");
    transacao.setNometransacao("Cadastro de Funcionario");
    transacao.setStatus("Ativo");        
    
    lista.add(transacao);
            
    perfil.setTransacaoCollection(lista);
            
    ControlaPerfil controlaPerfil = new ControlaPerfil();
    
    controlaPerfil.inserir(perfil);
    
          
            
}[/code]

Gostaria da colaboração do forum :smiley:

pessoal acontece o seguinte erro:

Exception in thread "main" java.lang.IllegalStateException: 
Exception Description: No transaction is currently active
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.rollback(EntityTransactionImpl.java:125)
        at br.gov.ro.sefin.ordem.controle.ControlaPerfil.inserir(ControlaPerfil.java:40)
        at br.gov.ro.sefin.ordem.controle.ControlaPerfil.main(ControlaPerfil.java:133)