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