Bom, vou tentar explicar direito qual o problema.
Estou com problema nos relacionamentos! Quando eu tenho uma entidade que se relaciona com outra (uma relação simples, ex: o funcionário tem um cargo apenas), na implementação do meu DAO, não sei se trago para a memória só o Objeto Funcionario sem o cargo, ou se crio um objeto Cargo também! Pois posso ter excesso de cópias na memória! Cada vez que alguem trouxer um tecnico de hardware, por exemplo, vou buscar no banco de dados e criar um novo.
O maior problema é para relacionamentos de um para vários, seria pior ainda, trazer uma lista imensa para a memória (se isso for problema)
Bom, mas outro problema sério mesmo, é que no meu sistema existem relacionamentos complexos, então, se eu trouxer uma instancia de uma Classe, ela vai trazer outras duas entidades, e essas duas vão trazer outras, e posso chegar num loop infinito, não sei se deu pra entender.
O que eu queria saber, é como fazer uma abordagem prática desses relacionamentos?
Pensei em guardar os códigos (de cargo por exemplo) nas classes, mas isso ficaria totalmente fora da orientação a objetos!
O lance é que não posso fazer algo muito complexo, pois estou no meio da implementação, esse é meu Trabalho de Graduação, e o prazo é para outubro!
A propósito, estou criando os DAOs usando PreparedStatement e carregando as queries em arquivos de properties!
Qualquer ajuda é bem vinda.