Olá pessoal estou com a seguinte dúvida!
Qual a melhor maneira de fazer um relacionamento entre duas classes? Eu implementei uma solução mas gostaria da opinião de alguém mais experiente. Segue:
Estou criando uma arquitetura composta de DAO e VO tenho duas classes relacionadas tal como Cidade -> UF (1…1)
Tenho as classes CidadeDAO e UFDAO nestas duas tenhos métodos C.R.U.D. e um método de pesquisa onde passo os parâmetros para qualquer pesquisa
Em Cidade criei uma referencia para UF e na tabela respectiva a Cidade criei uma FK para a tabela UF (uf_o_id)
Minha dúvida principal é a seguinte, existe alguma forma que eu não crie um atributo uf_o_id em Cidade?
Sei que no Hibernate isto é feito no mapeamento das tabelas pelo hbm mas eu estou utilizando JDBC acessando MySql
Desde já agradeço
Isso que você quer?
[code]public class Cidade{
private int id;
private String nome;
private UF uf;
//getters & setters
}
public class UF{
private String sigla;
private String nome;
//getters & setters
}[/code]
Olá Jair
Na verdade eu implementei isso mas na classe Cidade eu inclui um atributo uf_id para fazer referencia a FK da tabela UF além da refencia da própria classe UF
public class Cidade{
private int id;
private String nome;
private uf_id
private UF uf;
//getters & setters
}
E aí no meu método getUF e buscaria o registro correspondente a UF relacionada à cidade desta forma:
[code] public UF getUf(){
DAOFactoryGeral daoFactory;
try {
daoFactory = DAOFactoryGeral.getDAOFactory();
UFDAO ufDAO = daoFactory.createUFDAO();
if (uf.getO_id()!= this.getUf_o_id()) {
uf.setO_id(this.getUf_o_id());
List<UF> ufList =
ufDAO.SearchByCriterio(ufDAO.getAllFields(), uf, null);
this.setUf((UF)ufList.iterator().next());
}
} catch (PersistanceException ex) {
ex.printStackTrace();
}
return uf;
}[/code]
Teria outra forma de fazer isso pois eu quero guando fizer isso Cidade.geUf().getSigla() me traga a sigla da uf relacionada com a cidade.
Isso está funcionando mas gostaria de saber se existe outra forma de fazer
Obrigado
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia: