bom galera,
Estou com um pequeno problema aqui, possuo campo muitos para muitos dentro de outro campo muito para muito.
Não entendeu, vou explicar melhor:
Preciso Guardar as seguintes informações (empresa, Ramo de Atividade e Especialização)
Empresa{ id int, String Nome}
Sendo que uma empresa possui muitos Ramo de Atividade
Ramo de Atividade {id int, String Nome}
Por sua vez um Ramo de Atividade Possui muitas Especializações.
Especializações{id int, String Nome}
Mas não acho que isso seja a melhor forma, pois teriamos problemas para Salvar novas Especializações de um cadastro já existente no banco de dados, não saberiamos oque foi modificado… Seria necessario acessar o banco novamente para pegar o cadastro antigo e fazer as comparações… isso resultaria em um gasto de processamento desnecessario… por isso estou pedindo a ajuda de vocês… o importante é entender a logica do problema… Espero que me ajudem!
Grato, desde já!
Pelo que entendi a Empresa poderia ser ligada direto as Especializações, e estas sim ligadas ao Ramo de Atividade…
Afinal, dizer que a empresa Nova2 é do Ramo Educacional, não garante a ela todas especializações do ramo…
Você pode modar que uma Empresa tem uma lista de Especializações e cada Especialização pertence a um Ramo de Atividade…
Isso varia muito de como for montar a tela…provavelmente seria interessante para o usuário comparar a informação anterior com a nova ao atualizar…
De qualquer forma, vc pode simplesmente apagar todas Especializações abaixo de uma Empresa, e sair inserindo todas novamente…
(isso não funciona se tiver chaves presas a esse relacionamento)
Ola a todos !!
Acredito que a solução será este código abaixo.Criei o relacionamento muitos para muitos e nas tabelas de relacionamento coloquei a UniqueConstraint que não deixa que os relacionamentos se repitam, disparando uma exceção que deve ser tratada na sua regra de negócio.
Segue o código:
[quote=Lord]Ola a todos !!
Acredito que a solução será este código abaixo.Criei o relacionamento muitos para muitos e nas tabelas de relacionamento coloquei a UniqueConstraint que não deixa que os relacionamentos se repitam, disparando uma exceção que deve ser tratada na sua regra de negócio.
Segue o código:
[/quote]
Olá Amigo, eu testei o seu metodo no hibernate apesar de estar utilizando DAO… para ver como ficaria e percebi que o seu conjunto de soluções Não possibilita as Empresas terem Especializações diferentes das que são Proprias do Ramo de Atividade.
A empresa tem que poder escolher qual ramo de atividade ela quer, entende? no caso eu não quero pegar todas as especializações do Ramo Atividade.
Empresa tem uma lista de Ramo Atividade, e a empresa pode escolher um ou + especializações para esse Ramo de Atividade…
Muito Obrigado pela resposta… vou pensar como posso melhorar isso…
Se vc souber como posta ai
vlw
Isso Parace legal… mas parece meio um ciclo vicioso… pq depois do Ramo de Atividade nós temos uma lista de Especializações novamente… podemos nos confundir né!!!
Será que nós nesse caso nao poderiamos colocar na especialização apenas o atributo ID do RamoAtividade? (assim ao meu ver o ciclo estaria quebrado não tendo uma classe dentro da outra, só não sei se seria legal no OO)
Me parece uma solução interessante, mas isso não geraria um processamento para o banco de dados desnecessário, tendo em vista que poderiamos apenas inserir os novos?
Eu estive pensando em uma tabela no banco para guardar a especialização da empresa da seguinte forma:
{
id, id_empresa,id_especializacao
}
e uma nova classe que seria Especialização_Empresa que teria
{id, Especialização}
Assim eu poderia manipular o objeto destruindo ou construindo o relacionamento no banco de dados a qualquer hora!
O problema é que isso é um POG danado… gostaria de deixar isso no puro conceito OO mas está complicado!
E ai amigos oque me dizem???