Mapear várias tabelas em um objeto

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?

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.

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?

A ideia básica é algo como:[code]public class Funcionario{

private Cargo cargo;

private Empresa empresa;

private Classificacao classificacao;

// ...

}[/code]E claro, com o mapeamento necessário para cada relacionamento.

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

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

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

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

Ah sim, entendi. Obrigado!