Modelagem Classes / Banco

Olá,

No banco de dados tenho três tabelas:

  • hospitais (colunas: id_hospital, nome_hospital)
  • equipamentos (colunas: id_equipamento, nome_equipamento)
  • equipamentos_hospitais (id_equipamento, id_hospital, quantidade)

O relacionamento entre “hospitais” e “equipamentos” é de N para N, e portanto tenho a tabela “equipamentos_hospitais” que é a tabela “do meio” e armazena quais hospitais têm quais equipamentos.

No código Java, criei a classe Hospital e a classe Equipamento, no pacote model. Também criei a classe HospitaoDao e EquipamentoDao, no pacote dao.

Agora estou precisando de fazer uma página que, dado um hospital, liste numa tabela todos os equipamentos dele, e a quantidade. Se fosse só listar os equipamentos, eu conseguiria fazer usando a classe EquipamentoDao e pegando o ArrayList de Equipamentos. Só que além de mostrar o equipamento, tem que mostrar a quantidade, que está na tabela equipamentos_hospitais (e não tem na classe Equipamento).

Qual a melhor forma de fazer isso? Devo criar uma classe EquipamentoHospital e uma classe EquipamentoHospitalDao? Ou devo criar um atributo “quantidade” dentro da classe Equipamento mesmo?

Adiciona o atributo mesmo…

Nobre colega, creio que haja uma forma de vc acessar a tabela de relacionamento mas a priori não me ocorreu nada melhor do que colocar a quantidade em equipamento desde que vc não precise identificá-los unicamente, o q creio não ser o seu caso :frowning: . Caso contrário vc terá replicada uma quantidade não de um objeto específico mas de uma classe de objetos, no seu modelo Equipamento.

Irei pensar melhor sobre isto…

[]'s

Mas eu não estaria quebrando a coesão da minha classe Equipamento? O atributo “quantidade” a meu ver não é uma propriedade da classe Equipamento…

Um equipamento tem propriedades como preço, tamanho, cor, etc… mas não quantidade!!

Pensando rapidamente:

  1. Você pode ter um getQuantidade(Equipamento e) em Hospital.

ou

  1. Você pode ter uma classe EquipamentoHospital.