Edgar, existe uma tag no arquivo descritor jbosscmp-jdbc.xml na qual você indica o nome da
tabela do relacionamento em questão... o ejb-relation-name é apenas uma maneira de identificar a
relação dentro dos descritores. Eis um trecho onde a tag aparece ... <relationships> <ejb-relation> <ejb-relation-name>Aluno-Disciplina</ejb-relation-name> <relation-table-mapping> <table-name>Matriculas</table-name> </relation-table-mapping> <ejb-relationship-role> <ejb-relationship-role-name> Aluno-Has-Disciplinas </ejb-relationship-role-name> <key-fields> <key-field> <field-name>alunoID</field-name> <column-name>alunoID</column-name> </key-field> </key-fields> </ejb-relationship-role> <ejb-relationship-role> <ejb-relationship-role-name> Disciplina-Has-Alunos </ejb-relationship-role-name> <key-fields> <key-field> <field-name>disciplinaID</field-name> <column-name>disciplinaID</column-name> </key-field> </key-fields> </ejb-relationship-role> </ejb-relation> .... </relationships> neste exemplo será criada a tabela
"Matriculas" para o relacionamento many to many de Aluno e Disciplina. Note que o table name é definido para um ejb-relation
e cada chave estrangeira é definida para o ejb-relationship-role-name
correspondente (ou seja, você deve fazer uma correspondência com o que é feito
no ejb-jar.xml), assim o campo alunoID
(chave estrangeira de aluno) para a role que mapeia o aluno cursando várias
disciplinas (deve existir um campo alunoID na tabela
de alunos - chave primária) corresponderá à coluna alunoID
na nova tabela criada. O mesmo ocorre com o campo disciplinaID (chave estrangeira da disciplina). > Collection c = aluno.getMatriculas(); > c.add(Disciplina); > aluno.setMatriculas(c); Não
é necessário efetuar "aluno.setMatriculas(c);"
pois ao chamar "aluno.getMatriculas();"
você obteve uma referência para a coleção de disciplinas cursadas e ao chamar o
método add você já adicionou a disciplina em questão. Mesmo assim, algo deveria aparecer na tabela de
relacionamento many to many
(seja lá o nome com a qual ela tenha sido criada). Tente isso... se não funcionar,
possivelmente existe algo de errado no ejb-jar.xml. Qualquer coisa, estamos ai... Obs.:
estou mandando um .pdf que
pode ajudar, nele tem o exemplo usado pelo prof. em aula (dos gangsters) e mais algumas coisas, acho que ajuda
bastante... espero que não haja problemas por causa do
tamanho do arquivo... []’s Fernando (Maguila) |
Attachment:
JBossCMP.pdf
Description: Adobe PDF document