Mapear várias tabelas em um objeto

8 respostas
Yago_Ernandes

Tenho que fazer o mapeamento do hibernate para uma aplicação de cadastrar funcionários mas no banco de dados os atributos dele estão espalhados em tabelas diferentes. Por exemplo:

Características do funcionário (e suas respectivas tabelas):

[b]* Cargo (tab_ocup)

  • Empresa (dom_fil)
  • Setor (dom_dep)
  • Parentes (tab_pare)
  • Classificação (tab_clap)
  • Endereço (tab_ende)[/b]

E para cada cadastro de funcionario devera ter uma entrada em todas essas tabelas. Alguém ai sabe como isso pode ser feito?

8 Respostas

Rodrigo_Sasaki

Você tem que modelar suas classes de acordo com as tabelas, e mapear os relacionamentos corretamente.
Cada classe irá corresponder a uma tabela, e no fim, se tudo for feito corretamente, ele irá persistir um registro em cada uma.

Existem plugins de engenharia reversa do Hibernate, onde você gera classes a partir das tabelas.
Geralmente é bom dar uma revisada depois que são geradas, mas boa parte ele gera pra você caso queira.

Eu sei que existe para Eclipse e para NetBeans, se quiser dar uma pesquisada, pode valer a pena.

Yago_Ernandes

PS: Eu já mapeei todas essas tabelas, só falta a funcionário em si, estou perguntando aqui porquê não acho que a melhor forma seja criar um objeto pra cada. Tem alguma forma de criar um objeto só para funcionário e este já instanciar o resto?

Rodrigo_Sasaki
A ideia básica é algo como:
public class Funcionario{

    private Cargo cargo;

    private Empresa empresa;

    private Classificacao classificacao;

    // ...

}
E claro, com o mapeamento necessário para cada relacionamento.
Yago_Ernandes

Pelo que eu entendi, vou ter que criar um objeto (funcionário) sem relação na tabela e fazer as operações nele. É isso?

Rodrigo_Sasaki

Você tem que ter uma tabela funcionário também, para guardar os valores das FKs, senão fica muito difícil de trabalhar.

Yago_Ernandes

Tem uma tabela funcionário sim (tab_parc), mas eu esqueci de colocá-la no post. Mas é isso mesmo ai que eu falei?

Rodrigo_Sasaki

Tirando a parte de sem relação na tabela é isso mesmo.

Yago_Ernandes

Ah sim, entendi. Obrigado!

Criado 18 de outubro de 2012
Ultima resposta 18 de out. de 2012
Respostas 8
Participantes 2