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  