Dúvida! Como Gravar um atributo de uma classe em outra?

6 respostas
Seken

Pessoal, estou com uma dúvida tremenda.

Tenho uma classe chamada paciente e doença.

A minha classe paciente tem um atributo chamado código que deve ser passado como referiencia para a classe doença.
Pois a pessoa tem que cadastrar várias doenças para 1 paciente.

Não sei como faço para que eu consiga gravar no banco esse atributo do paciente na doença. Alguem pode me ajudar ???

6 Respostas

davidbuzatto

Como é uma relação N-N (um paciente pode ter várias doenças e uma doença pode ser de vários pacientes), você vai precisar de uma tabela entre paciente e doença.

----------       ----------------        --------------
| Paciente |1   N| PacienteDoenca |     1| Doenca       |
| * id     |---->| * paciente_id  |N   --| * id         | 
|   nome   |     | * doenca_id    |<--|  | * descricao  |
|   ...    |     |   ...          |      |   ...        |
 ----------       ----------------        --------------

Até mais!

Seken

davidbuzatto,

No meu caso a classe Doença ela tem apenas 3 atributos, que é o cod_paciente / nomedadoenca e descricao da doenca.

O objetivo não é fazer um relacionamento N – N e sim um 1 – N, pois a descrição da doença vai depender do estado que o paciente se encontra, a unica coisa que vai ter em comum seria o nome.

Acho que não formulei minha dúvida corretamente.

Eu estou precisando pegar o atributo codigo do paciente que é auto incremento e passar ele para o atributo cod_paciente da classe doença .

PS:

Não sei se eu criando um relacionamento N – N seria a melhor solução.

maquiavelbona

Uma doença tem um paciente ou um paciente tem uma doença? Mesmo que a doença seja diferente, ela vai ter um nome comum a vários pacientes. Então eu faria no seu caso assim: Usaria o formato N-N como sugeriram, com Paciente e Arquétipo da doença. Um paciente pode ter vários arquétipos e cada arquétipo vai ter uma doença e suas características. Como abaixo:

Paciente:
id
nome
/*bla bla bla*/

Doença
id
nome
/*bla bla bla*/

Arquetipo:
id
id_paciente
id_doença
detalhes
diagnóstico
/*bla bla bla*/

Até

ViniGodoy

Ao invés do código, passe o paciente para classe doença.
OO != BD.

Na verdade, na OO seria até melhor que o seu paciente tivesse uma lista de doenças:

Paciente paciente = new Paciente();
paciente.addDoenca(new Doenca("Reumatite"));
paciente.addDoenca(new Doenca("Raquitismo"));
paciente.addDoenca(new Doenca("Cistite"));
paciente.addDoenca(new Doenca("Desritmia"));

… e o pulso ainda pulsa…

Seken

Ok entendi,

Obrigado galera vlw.

Resolvido !!!

peczenyj

Veja o exemplo “uma universidade tem varios centros” logo no começo :slight_smile:

ftp://users.dca.ufrn.br/hibernate_anotacoes/T03_Relacionamentos_1.pdf

Criado 3 de fevereiro de 2008
Ultima resposta 3 de fev. de 2008
Respostas 6
Participantes 5