Primeiramente, quero me desculpar pelo “Titulo do Post”, sei que é errado, mas o desespero fala mais alto…Por isso eu peço ajuda a quem puder ajudar ae !!! E novamente, me desculpe os moderadores.
É o seguinte, eu tenho 3 tabelas no BD …
1 - Ymodulos
2 - Yperfil
3 - Yperfilmodulo.
na tabela 1, eu cadastro o nome do modulo(classe de tela JDialog), na 2 eu cadastro o perfil do usuario, e na 3 eu vinculo o codigo do perfil aos modulos e dou as permissoes.
aqui esta o link das imagens dos modelos.
http://www.4shared.com/photo/nlPOpMlz/modelo.html?
aqui a imagem do JDialog onde faco o vinculo
http://www.4shared.com/photo/QU-917GY/Captura_de_tela-2.html?
Bem, o problema é o seguinte, quando eu faço o vinculo na primeira vez, eu uso o session.save() e insiro as informações normalmente no BD…
O problema acontece quando eu cadastro um novo módulo. Após cadastrar o novo módulo, eu abro a tela de vinculos e vou dar as permissoes ao novo módulo que é exibido na JTable. E é este o problema, eu não consigo inserir o novo módulo, eu consigo apenas alterar os que ja estão vinculados ao perfil. Eu preciso inseri-lo tbm, mas não consigo isso. Estou tentando usar o saveOrUpdate(), que na documentação do Hibernate diz que insere ou altera um novo registro, mas comigo isso ainda naum funcionou.
No link da tela JDialog com o JTable vcs vão ver o que estou tentando fazer, e no link do modelo vcs vão ver o relacionamento das 3 tabelas.
aqui vai o codigo que estou tentando agora, ja testei muitos outros e ainda não consegui fazer funcionar.
public void alteraVinculaPerfilModuloPermissoes(){
//este método deveria alterar as permissoes que o perfil ja possui ou insere um novo modulo com as permissoes
Long codP = Long.parseLong(codPerfil.getText());
Session sessao = new RetornaSessaoHibernate().hibernateSession();
sessao.beginTransaction();
Yperfilmodulo pm = new Yperfilmodulo();
Yperfil perfil = new Yperfil();
perfil.setId(codP);
Ymodulos modulo = new Ymodulos();
for(int x = 0; x < gridPermissoesPorModulo.getRowCount(); x++){
String codM = (String)gridPermissoesPorModulo.getValueAt(x, 0);
modulo.setId(Long.parseLong(codM));
pm.setYperfil(perfil);
pm.setYmodulos(modulo);
pm.setInserir(String.valueOf(gridPermissoesPorModulo.getModel().getValueAt(x, 2).toString()));
pm.setAlterar(String.valueOf(gridPermissoesPorModulo.getModel().getValueAt(x, 3).toString()));
pm.setConsultar(String.valueOf(gridPermissoesPorModulo.getModel().getValueAt(x, 4).toString()));
pm.setImprimir(String.valueOf(gridPermissoesPorModulo.getModel().getValueAt(x, 5).toString()));
sessao.saveOrUpdate(pm); //aqui esta o problema, não consigo inserir um novo registro caso não haja.
}
sessao.getTransaction().commit();
}
Espero que me desculpem, e que me ajude quem puder.
obrigado