Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Padão DAO

Olá, a minha dúvida é sobre a classe DAO, eu entendo que uma classe dao (objeto de acesso a dados) é criada para acessar uma tabela, exemplo: a classe AlunoDao é responsável pelo acesso aos dados da tabela aluno, ou seja, ela não tem acesso a outra tabela.

Porém se eu precisar criar um DAO para tabelas associadas, é correto fazer join com alguma outra tabela dentro de uma classe dao?

Eu pensei em uma solução que é a criação de uma classe associativa que implementa um dao, por exemplo:

Aluno, Curso, Matrícula.

A classe Matricula seria a associação que implementa o dao e nela eu poderia fazer um select com join sem violar o padrão .

Gostaria de saber se isso é considerado uma solução ou não teria problema utilizar a associação na classe AlunoDAO.

1 resposta
solução!

Oi Mizael, tudo bem? Boa pergunta. Geralmente não vejo por ai questões como essa, o que a gente tá mais acostumado é: o DAO acessa uma tabela e ponto. Não é comum de se ver explicando por ai o que fazer quando estamos com associações usando um padrão como o DAO.

Podemos resolver o problema de diversas formas, mas o que nos impede de implementa-las realmente é a dúvida de que estamos ou não quebrando algum conceito ou boa prática. Acho que posso te dar uma dica.

O mais comum é que você tenha um método na classe principal que relaciona está a outras tabelas. Na classe Matricula por exemplo, eu posso ter um método que recebe um objeto Aluno e trás seus dados. E que pode também através de outro método, buscar os cursos em que este aluno está matriculado.

Agora um outro problema. Ao você fazer isso, uma boa prática é que o caminho inverso também seja possível, ou seja, através de um curso eu posso descobrir quais são os alunos matriculados.

Entende? Espero ter ajudado, bons estudos! qualquer coisa, estamos aqui.